@hydranium/core 1.0.0-next.30 → 1.0.0-next.300

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 (770) hide show
  1. package/README.md +72 -82
  2. package/lib/browser/host-heads-in-worker.d.ts +58 -0
  3. package/lib/browser/host-heads-in-worker.d.ts.map +1 -0
  4. package/lib/browser/host-heads-in-worker.js +113 -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 +29 -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 +35 -0
  17. package/lib/browser/start-language-server-in-worker.js.map +1 -0
  18. package/lib/documents/ast-document-manager.d.ts +256 -124
  19. package/lib/documents/ast-document-manager.d.ts.map +1 -1
  20. package/lib/documents/ast-document-manager.js +293 -132
  21. package/lib/documents/ast-document-manager.js.map +1 -1
  22. package/lib/documents/client-ids.d.ts +5 -19
  23. package/lib/documents/client-ids.d.ts.map +1 -1
  24. package/lib/documents/client-ids.js +5 -19
  25. package/lib/documents/client-ids.js.map +1 -1
  26. package/lib/documents/client-session-errors.d.ts +15 -0
  27. package/lib/documents/client-session-errors.d.ts.map +1 -0
  28. package/lib/documents/client-session-errors.js +15 -0
  29. package/lib/documents/client-session-errors.js.map +1 -0
  30. package/lib/documents/client-session-registry.d.ts +146 -0
  31. package/lib/documents/client-session-registry.d.ts.map +1 -0
  32. package/lib/documents/client-session-registry.js +207 -0
  33. package/lib/documents/client-session-registry.js.map +1 -0
  34. package/lib/documents/dirty-state-tracker.d.ts +101 -0
  35. package/lib/documents/dirty-state-tracker.d.ts.map +1 -0
  36. package/lib/documents/dirty-state-tracker.js +85 -0
  37. package/lib/documents/dirty-state-tracker.js.map +1 -0
  38. package/lib/documents/document-release-handler.d.ts +204 -0
  39. package/lib/documents/document-release-handler.d.ts.map +1 -0
  40. package/lib/documents/document-release-handler.js +317 -0
  41. package/lib/documents/document-release-handler.js.map +1 -0
  42. package/lib/documents/document-release-scheduler.d.ts +67 -0
  43. package/lib/documents/document-release-scheduler.d.ts.map +1 -0
  44. package/lib/documents/document-release-scheduler.js +80 -0
  45. package/lib/documents/document-release-scheduler.js.map +1 -0
  46. package/lib/documents/file-system-task-queue.d.ts +52 -0
  47. package/lib/documents/file-system-task-queue.d.ts.map +1 -0
  48. package/lib/documents/file-system-task-queue.js +37 -0
  49. package/lib/documents/file-system-task-queue.js.map +1 -0
  50. package/lib/documents/hydranium-text-documents.d.ts +419 -282
  51. package/lib/documents/hydranium-text-documents.d.ts.map +1 -1
  52. package/lib/documents/hydranium-text-documents.js +856 -483
  53. package/lib/documents/hydranium-text-documents.js.map +1 -1
  54. package/lib/documents/index.d.ts +10 -2
  55. package/lib/documents/index.d.ts.map +1 -1
  56. package/lib/documents/index.js +10 -2
  57. package/lib/documents/index.js.map +1 -1
  58. package/lib/documents/language-client-shadow.d.ts +218 -0
  59. package/lib/documents/language-client-shadow.d.ts.map +1 -0
  60. package/lib/documents/language-client-shadow.js +284 -0
  61. package/lib/documents/language-client-shadow.js.map +1 -0
  62. package/lib/documents/model-ledger.d.ts +47 -0
  63. package/lib/documents/model-ledger.d.ts.map +1 -0
  64. package/lib/documents/model-ledger.js +30 -0
  65. package/lib/documents/model-ledger.js.map +1 -0
  66. package/lib/documents/text-ledger.d.ts +64 -0
  67. package/lib/documents/text-ledger.d.ts.map +1 -0
  68. package/lib/documents/text-ledger.js +63 -0
  69. package/lib/documents/text-ledger.js.map +1 -0
  70. package/lib/documents/version-sync-service.d.ts +138 -0
  71. package/lib/documents/version-sync-service.d.ts.map +1 -0
  72. package/lib/documents/version-sync-service.js +173 -0
  73. package/lib/documents/version-sync-service.js.map +1 -0
  74. package/lib/index.d.ts +5 -0
  75. package/lib/index.d.ts.map +1 -1
  76. package/lib/index.js +8 -0
  77. package/lib/index.js.map +1 -1
  78. package/lib/langium/ast-extension/ast-extension-service.d.ts +42 -31
  79. package/lib/langium/ast-extension/ast-extension-service.d.ts.map +1 -1
  80. package/lib/langium/ast-extension/ast-extension-service.js +45 -19
  81. package/lib/langium/ast-extension/ast-extension-service.js.map +1 -1
  82. package/lib/langium/ast-extension/ast-node-builder.d.ts +32 -9
  83. package/lib/langium/ast-extension/ast-node-builder.d.ts.map +1 -1
  84. package/lib/langium/ast-extension/ast-node-builder.js +60 -22
  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 +91 -45
  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/hydranium-langium-profiler.d.ts +9 -20
  112. package/lib/langium/diagnostics/hydranium-langium-profiler.d.ts.map +1 -1
  113. package/lib/langium/diagnostics/hydranium-langium-profiler.js +15 -24
  114. package/lib/langium/diagnostics/hydranium-langium-profiler.js.map +1 -1
  115. package/lib/langium/diagnostics/log-preamble.js +1 -1
  116. package/lib/langium/diagnostics/log-preamble.js.map +1 -1
  117. package/lib/langium/diagnostics/logger.d.ts +19 -4
  118. package/lib/langium/diagnostics/logger.d.ts.map +1 -1
  119. package/lib/langium/diagnostics/logger.js +36 -11
  120. package/lib/langium/diagnostics/logger.js.map +1 -1
  121. package/lib/langium/diagnostics/lsp-logger.d.ts +17 -0
  122. package/lib/langium/diagnostics/lsp-logger.d.ts.map +1 -1
  123. package/lib/langium/diagnostics/lsp-logger.js +58 -17
  124. package/lib/langium/diagnostics/lsp-logger.js.map +1 -1
  125. package/lib/langium/diagnostics/server-tracer.d.ts.map +1 -1
  126. package/lib/langium/diagnostics/server-tracer.js.map +1 -1
  127. package/lib/langium/document-builder/build-pipeline-integration.d.ts +21 -1
  128. package/lib/langium/document-builder/build-pipeline-integration.d.ts.map +1 -1
  129. package/lib/langium/document-builder/build-pipeline-integration.js +28 -30
  130. package/lib/langium/document-builder/build-pipeline-integration.js.map +1 -1
  131. package/lib/langium/document-builder/build-session.d.ts +6 -5
  132. package/lib/langium/document-builder/build-session.d.ts.map +1 -1
  133. package/lib/langium/document-builder/build-session.js +5 -5
  134. package/lib/langium/document-builder/build-session.js.map +1 -1
  135. package/lib/langium/document-builder/document-builder.d.ts +309 -35
  136. package/lib/langium/document-builder/document-builder.d.ts.map +1 -1
  137. package/lib/langium/document-builder/document-builder.js +511 -75
  138. package/lib/langium/document-builder/document-builder.js.map +1 -1
  139. package/lib/langium/documentation/comment-provider.d.ts.map +1 -1
  140. package/lib/langium/documentation/comment-provider.js.map +1 -1
  141. package/lib/langium/integration-services.d.ts +40 -24
  142. package/lib/langium/integration-services.d.ts.map +1 -1
  143. package/lib/langium/integration-services.js +7 -4
  144. package/lib/langium/integration-services.js.map +1 -1
  145. package/lib/langium/integrity/integrity-rule.d.ts +16 -8
  146. package/lib/langium/integrity/integrity-rule.d.ts.map +1 -1
  147. package/lib/langium/integrity/integrity-rule.js.map +1 -1
  148. package/lib/langium/integrity/integrity-service.d.ts +83 -27
  149. package/lib/langium/integrity/integrity-service.d.ts.map +1 -1
  150. package/lib/langium/integrity/integrity-service.js +273 -63
  151. package/lib/langium/integrity/integrity-service.js.map +1 -1
  152. package/lib/langium/keys/containment.d.ts +64 -0
  153. package/lib/langium/keys/containment.d.ts.map +1 -0
  154. package/lib/langium/keys/containment.js +53 -0
  155. package/lib/langium/keys/containment.js.map +1 -0
  156. package/lib/langium/keys/index.d.ts +1 -0
  157. package/lib/langium/keys/index.d.ts.map +1 -1
  158. package/lib/langium/keys/index.js +1 -0
  159. package/lib/langium/keys/index.js.map +1 -1
  160. package/lib/langium/keys/name-based-key-provider.d.ts +4 -0
  161. package/lib/langium/keys/name-based-key-provider.d.ts.map +1 -1
  162. package/lib/langium/keys/name-based-key-provider.js +4 -0
  163. package/lib/langium/keys/name-based-key-provider.js.map +1 -1
  164. package/lib/langium/keys/positional-key-provider.d.ts.map +1 -1
  165. package/lib/langium/keys/positional-key-provider.js.map +1 -1
  166. package/lib/langium/labeling/label-provider.d.ts.map +1 -1
  167. package/lib/langium/labeling/label-provider.js.map +1 -1
  168. package/lib/langium/language-module.d.ts +30 -5
  169. package/lib/langium/language-module.d.ts.map +1 -1
  170. package/lib/langium/language-module.js +18 -4
  171. package/lib/langium/language-module.js.map +1 -1
  172. package/lib/langium/model-service/client-session.d.ts +374 -0
  173. package/lib/langium/model-service/client-session.d.ts.map +1 -0
  174. package/lib/langium/model-service/client-session.js +446 -0
  175. package/lib/langium/model-service/client-session.js.map +1 -0
  176. package/lib/langium/model-service/index.d.ts +2 -0
  177. package/lib/langium/model-service/index.d.ts.map +1 -1
  178. package/lib/langium/model-service/index.js +2 -0
  179. package/lib/langium/model-service/index.js.map +1 -1
  180. package/lib/langium/model-service/model-events.d.ts +66 -0
  181. package/lib/langium/model-service/model-events.d.ts.map +1 -0
  182. package/lib/langium/model-service/model-events.js +10 -0
  183. package/lib/langium/model-service/model-events.js.map +1 -0
  184. package/lib/langium/model-service/model-service.d.ts +480 -289
  185. package/lib/langium/model-service/model-service.d.ts.map +1 -1
  186. package/lib/langium/model-service/model-service.js +597 -456
  187. package/lib/langium/model-service/model-service.js.map +1 -1
  188. package/lib/langium/module.d.ts +158 -37
  189. package/lib/langium/module.d.ts.map +1 -1
  190. package/lib/langium/module.js +52 -36
  191. package/lib/langium/module.js.map +1 -1
  192. package/lib/langium/naming/name-provider.d.ts +42 -7
  193. package/lib/langium/naming/name-provider.d.ts.map +1 -1
  194. package/lib/langium/naming/name-provider.js +10 -4
  195. package/lib/langium/naming/name-provider.js.map +1 -1
  196. package/lib/langium/naming/name-separator-validation.d.ts +23 -1
  197. package/lib/langium/naming/name-separator-validation.d.ts.map +1 -1
  198. package/lib/langium/naming/name-separator-validation.js +22 -0
  199. package/lib/langium/naming/name-separator-validation.js.map +1 -1
  200. package/lib/langium/project/abstract-project-manager.d.ts.map +1 -1
  201. package/lib/langium/project/abstract-project-manager.js +13 -6
  202. package/lib/langium/project/abstract-project-manager.js.map +1 -1
  203. package/lib/langium/project/project-change-event.d.ts +2 -2
  204. package/lib/langium/project/single-project-manager.d.ts.map +1 -1
  205. package/lib/langium/project/single-project-manager.js.map +1 -1
  206. package/lib/langium/residency/cst-residency-service.d.ts +35 -12
  207. package/lib/langium/residency/cst-residency-service.d.ts.map +1 -1
  208. package/lib/langium/residency/cst-residency-service.js +24 -58
  209. package/lib/langium/residency/cst-residency-service.js.map +1 -1
  210. package/lib/langium/scope/ast-node-description-provider.d.ts.map +1 -1
  211. package/lib/langium/scope/ast-node-description-provider.js.map +1 -1
  212. package/lib/langium/scope/fallback-scope.d.ts +27 -0
  213. package/lib/langium/scope/fallback-scope.d.ts.map +1 -0
  214. package/lib/langium/scope/fallback-scope.js +35 -0
  215. package/lib/langium/scope/fallback-scope.js.map +1 -0
  216. package/lib/langium/scope/hydranium-scope-computation.d.ts +21 -18
  217. package/lib/langium/scope/hydranium-scope-computation.d.ts.map +1 -1
  218. package/lib/langium/scope/hydranium-scope-computation.js +38 -39
  219. package/lib/langium/scope/hydranium-scope-computation.js.map +1 -1
  220. package/lib/langium/scope/hydranium-scope-provider.d.ts +39 -17
  221. package/lib/langium/scope/hydranium-scope-provider.d.ts.map +1 -1
  222. package/lib/langium/scope/hydranium-scope-provider.js +52 -26
  223. package/lib/langium/scope/hydranium-scope-provider.js.map +1 -1
  224. package/lib/langium/scope/index.d.ts +1 -0
  225. package/lib/langium/scope/index.d.ts.map +1 -1
  226. package/lib/langium/scope/index.js +1 -0
  227. package/lib/langium/scope/index.js.map +1 -1
  228. package/lib/langium/scope/reference-builder.d.ts.map +1 -1
  229. package/lib/langium/scope/reference-builder.js.map +1 -1
  230. package/lib/langium/scope/reference-candidate-provider.d.ts +6 -5
  231. package/lib/langium/scope/reference-candidate-provider.d.ts.map +1 -1
  232. package/lib/langium/scope/reference-candidate-provider.js +3 -2
  233. package/lib/langium/scope/reference-candidate-provider.js.map +1 -1
  234. package/lib/langium/scope/scope-extension-service.d.ts +41 -37
  235. package/lib/langium/scope/scope-extension-service.d.ts.map +1 -1
  236. package/lib/langium/scope/scope-extension-service.js +57 -29
  237. package/lib/langium/scope/scope-extension-service.js.map +1 -1
  238. package/lib/langium/scope/scoped-ast-node-description.d.ts +1 -3
  239. package/lib/langium/scope/scoped-ast-node-description.d.ts.map +1 -1
  240. package/lib/langium/scope/scoped-ast-node-description.js +1 -3
  241. package/lib/langium/scope/scoped-ast-node-description.js.map +1 -1
  242. package/lib/langium/serialization/abstract-serializer.d.ts +38 -27
  243. package/lib/langium/serialization/abstract-serializer.d.ts.map +1 -1
  244. package/lib/langium/serialization/abstract-serializer.js +54 -30
  245. package/lib/langium/serialization/abstract-serializer.js.map +1 -1
  246. package/lib/langium/serialization/json-serializer.d.ts +8 -1
  247. package/lib/langium/serialization/json-serializer.d.ts.map +1 -1
  248. package/lib/langium/serialization/json-serializer.js +13 -3
  249. package/lib/langium/serialization/json-serializer.js.map +1 -1
  250. package/lib/langium/serialization/serializer.d.ts +1 -1
  251. package/lib/langium/serialization/yaml-serializer.d.ts +4 -0
  252. package/lib/langium/serialization/yaml-serializer.d.ts.map +1 -1
  253. package/lib/langium/serialization/yaml-serializer.js +4 -0
  254. package/lib/langium/serialization/yaml-serializer.js.map +1 -1
  255. package/lib/langium/service-registry.d.ts +29 -1
  256. package/lib/langium/service-registry.d.ts.map +1 -1
  257. package/lib/langium/service-registry.js +37 -0
  258. package/lib/langium/service-registry.js.map +1 -1
  259. package/lib/langium/shared-services.d.ts +23 -6
  260. package/lib/langium/shared-services.d.ts.map +1 -1
  261. package/lib/langium/shared-services.js.map +1 -1
  262. package/lib/langium/single-langium-copy.d.ts +22 -0
  263. package/lib/langium/single-langium-copy.d.ts.map +1 -0
  264. package/lib/langium/single-langium-copy.js +36 -0
  265. package/lib/langium/single-langium-copy.js.map +1 -0
  266. package/lib/langium/transfer/transfer-encoder.d.ts +84 -35
  267. package/lib/langium/transfer/transfer-encoder.d.ts.map +1 -1
  268. package/lib/langium/transfer/transfer-encoder.js +34 -23
  269. package/lib/langium/transfer/transfer-encoder.js.map +1 -1
  270. package/lib/langium/trivia/comment-preserver.d.ts +423 -0
  271. package/lib/langium/trivia/comment-preserver.d.ts.map +1 -0
  272. package/lib/langium/trivia/comment-preserver.js +906 -0
  273. package/lib/langium/trivia/comment-preserver.js.map +1 -0
  274. package/lib/langium/trivia/document-ending-preserver.d.ts +51 -0
  275. package/lib/langium/trivia/document-ending-preserver.d.ts.map +1 -0
  276. package/lib/langium/trivia/document-ending-preserver.js +62 -0
  277. package/lib/langium/trivia/document-ending-preserver.js.map +1 -0
  278. package/lib/langium/trivia/index.d.ts +14 -0
  279. package/lib/langium/trivia/index.d.ts.map +1 -0
  280. package/lib/langium/trivia/index.js +14 -0
  281. package/lib/langium/trivia/index.js.map +1 -0
  282. package/lib/langium/trivia/trivia-contribution.d.ts +37 -0
  283. package/lib/langium/trivia/trivia-contribution.d.ts.map +1 -0
  284. package/lib/langium/trivia/trivia-contribution.js +10 -0
  285. package/lib/langium/trivia/trivia-contribution.js.map +1 -0
  286. package/lib/langium/trivia/trivia-preserver.d.ts +52 -0
  287. package/lib/langium/trivia/trivia-preserver.d.ts.map +1 -0
  288. package/lib/langium/trivia/trivia-preserver.js +10 -0
  289. package/lib/langium/trivia/trivia-preserver.js.map +1 -0
  290. package/lib/langium/trivia/trivia-service.d.ts +70 -0
  291. package/lib/langium/trivia/trivia-service.d.ts.map +1 -0
  292. package/lib/langium/trivia/trivia-service.js +56 -0
  293. package/lib/langium/trivia/trivia-service.js.map +1 -0
  294. package/lib/langium/update-rewrite/normalize-empty-strings.d.ts.map +1 -1
  295. package/lib/langium/update-rewrite/update-rewrite-service.d.ts +1 -1
  296. package/lib/langium/update-rewrite/update-rewrite-service.d.ts.map +1 -1
  297. package/lib/langium/update-rewrite/update-rewrite-service.js.map +1 -1
  298. package/lib/langium/update-rewrite/update-rewrite.d.ts +1 -1
  299. package/lib/langium/validation/document-validator.d.ts +280 -9
  300. package/lib/langium/validation/document-validator.d.ts.map +1 -1
  301. package/lib/langium/validation/document-validator.js +453 -8
  302. package/lib/langium/validation/document-validator.js.map +1 -1
  303. package/lib/langium/validation/validation-contribution-collector.d.ts +9 -1
  304. package/lib/langium/validation/validation-contribution-collector.d.ts.map +1 -1
  305. package/lib/langium/validation/validation-contribution-collector.js +1 -1
  306. package/lib/langium/validation/validation-contribution-collector.js.map +1 -1
  307. package/lib/langium/workspace/document-uri-policy.d.ts +24 -15
  308. package/lib/langium/workspace/document-uri-policy.d.ts.map +1 -1
  309. package/lib/langium/workspace/document-uri-policy.js +22 -13
  310. package/lib/langium/workspace/document-uri-policy.js.map +1 -1
  311. package/lib/langium/workspace/file-not-found.d.ts +23 -0
  312. package/lib/langium/workspace/file-not-found.d.ts.map +1 -0
  313. package/lib/langium/workspace/file-not-found.js +31 -0
  314. package/lib/langium/workspace/file-not-found.js.map +1 -0
  315. package/lib/langium/workspace/file-system-provider.d.ts +165 -8
  316. package/lib/langium/workspace/file-system-provider.d.ts.map +1 -1
  317. package/lib/langium/workspace/file-system-provider.js +111 -13
  318. package/lib/langium/workspace/file-system-provider.js.map +1 -1
  319. package/lib/langium/workspace/hydranium-langium-document-factory.d.ts +31 -1
  320. package/lib/langium/workspace/hydranium-langium-document-factory.d.ts.map +1 -1
  321. package/lib/langium/workspace/hydranium-langium-document-factory.js +54 -0
  322. package/lib/langium/workspace/hydranium-langium-document-factory.js.map +1 -1
  323. package/lib/langium/workspace/hydranium-workspace-lock.d.ts +43 -1
  324. package/lib/langium/workspace/hydranium-workspace-lock.d.ts.map +1 -1
  325. package/lib/langium/workspace/hydranium-workspace-lock.js +58 -1
  326. package/lib/langium/workspace/hydranium-workspace-lock.js.map +1 -1
  327. package/lib/langium/workspace/hydranium-workspace-manager.d.ts +124 -22
  328. package/lib/langium/workspace/hydranium-workspace-manager.d.ts.map +1 -1
  329. package/lib/langium/workspace/hydranium-workspace-manager.js +212 -31
  330. package/lib/langium/workspace/hydranium-workspace-manager.js.map +1 -1
  331. package/lib/langium/workspace/in-memory-file-system-provider.d.ts +26 -9
  332. package/lib/langium/workspace/in-memory-file-system-provider.d.ts.map +1 -1
  333. package/lib/langium/workspace/in-memory-file-system-provider.js +45 -22
  334. package/lib/langium/workspace/in-memory-file-system-provider.js.map +1 -1
  335. package/lib/langium/workspace/index-manager.d.ts.map +1 -1
  336. package/lib/langium/workspace/index-manager.js.map +1 -1
  337. package/lib/langium/workspace/index.d.ts +1 -0
  338. package/lib/langium/workspace/index.d.ts.map +1 -1
  339. package/lib/langium/workspace/index.js +1 -0
  340. package/lib/langium/workspace/index.js.map +1 -1
  341. package/lib/langium/workspace/initialize-workspace.d.ts +31 -2
  342. package/lib/langium/workspace/initialize-workspace.d.ts.map +1 -1
  343. package/lib/langium/workspace/initialize-workspace.js +13 -5
  344. package/lib/langium/workspace/initialize-workspace.js.map +1 -1
  345. package/lib/langium/workspace/langium-documents.d.ts +7 -0
  346. package/lib/langium/workspace/langium-documents.d.ts.map +1 -1
  347. package/lib/langium/workspace/langium-documents.js +18 -1
  348. package/lib/langium/workspace/langium-documents.js.map +1 -1
  349. package/lib/langium/workspace/persistent-file-system-provider.d.ts +15 -9
  350. package/lib/langium/workspace/persistent-file-system-provider.d.ts.map +1 -1
  351. package/lib/langium/workspace/persistent-file-system-provider.js +25 -13
  352. package/lib/langium/workspace/persistent-file-system-provider.js.map +1 -1
  353. package/lib/langium/workspace/self-save-registry.d.ts +84 -0
  354. package/lib/langium/workspace/self-save-registry.d.ts.map +1 -0
  355. package/lib/{documents → langium/workspace}/self-save-registry.js +33 -22
  356. package/lib/langium/workspace/self-save-registry.js.map +1 -0
  357. package/lib/langium/workspace/virtual-document.d.ts +55 -21
  358. package/lib/langium/workspace/virtual-document.d.ts.map +1 -1
  359. package/lib/langium/workspace/virtual-document.js +87 -24
  360. package/lib/langium/workspace/virtual-document.js.map +1 -1
  361. package/lib/langium/workspace/write-lock-scope.d.ts +22 -10
  362. package/lib/langium/workspace/write-lock-scope.d.ts.map +1 -1
  363. package/lib/langium/workspace/write-lock-scope.js +15 -5
  364. package/lib/langium/workspace/write-lock-scope.js.map +1 -1
  365. package/lib/launcher/integrated-server.d.ts +3 -1
  366. package/lib/launcher/integrated-server.d.ts.map +1 -1
  367. package/lib/locale/index.d.ts +10 -0
  368. package/lib/locale/index.d.ts.map +1 -0
  369. package/lib/locale/index.js +10 -0
  370. package/lib/locale/index.js.map +1 -0
  371. package/lib/locale/server-locale.d.ts +73 -0
  372. package/lib/locale/server-locale.d.ts.map +1 -0
  373. package/lib/locale/server-locale.js +61 -0
  374. package/lib/locale/server-locale.js.map +1 -0
  375. package/lib/lsp/completion/hydranium-completion-provider.d.ts +44 -2
  376. package/lib/lsp/completion/hydranium-completion-provider.d.ts.map +1 -1
  377. package/lib/lsp/completion/hydranium-completion-provider.js +68 -0
  378. package/lib/lsp/completion/hydranium-completion-provider.js.map +1 -1
  379. package/lib/lsp/connection-features.d.ts +23 -0
  380. package/lib/lsp/connection-features.d.ts.map +1 -0
  381. package/lib/lsp/connection-features.js +60 -0
  382. package/lib/lsp/connection-features.js.map +1 -0
  383. package/lib/lsp/diagnostics-connection.d.ts +27 -0
  384. package/lib/lsp/diagnostics-connection.d.ts.map +1 -0
  385. package/lib/lsp/diagnostics-connection.js +53 -0
  386. package/lib/lsp/diagnostics-connection.js.map +1 -0
  387. package/lib/lsp/hydranium-document-update-handler.d.ts +126 -82
  388. package/lib/lsp/hydranium-document-update-handler.d.ts.map +1 -1
  389. package/lib/lsp/hydranium-document-update-handler.js +235 -102
  390. package/lib/lsp/hydranium-document-update-handler.js.map +1 -1
  391. package/lib/lsp/index.d.ts +3 -1
  392. package/lib/lsp/index.d.ts.map +1 -1
  393. package/lib/lsp/index.js +3 -1
  394. package/lib/lsp/index.js.map +1 -1
  395. package/lib/lsp/lsp-latency.d.ts +39 -0
  396. package/lib/lsp/lsp-latency.d.ts.map +1 -0
  397. package/lib/lsp/lsp-latency.js +58 -0
  398. package/lib/lsp/lsp-latency.js.map +1 -0
  399. package/lib/lsp/semantic-token-provider.d.ts +34 -1
  400. package/lib/lsp/semantic-token-provider.d.ts.map +1 -1
  401. package/lib/lsp/semantic-token-provider.js +55 -8
  402. package/lib/lsp/semantic-token-provider.js.map +1 -1
  403. package/lib/lsp/shared-module.d.ts +4 -8
  404. package/lib/lsp/shared-module.d.ts.map +1 -1
  405. package/lib/lsp/shared-module.js.map +1 -1
  406. package/lib/lsp/start-language-server.d.ts +8 -7
  407. package/lib/lsp/start-language-server.d.ts.map +1 -1
  408. package/lib/lsp/start-language-server.js +13 -7
  409. package/lib/lsp/start-language-server.js.map +1 -1
  410. package/lib/messages/carriers.d.ts +18 -12
  411. package/lib/messages/carriers.d.ts.map +1 -1
  412. package/lib/messages/carriers.js +22 -13
  413. package/lib/messages/carriers.js.map +1 -1
  414. package/lib/messages/index.d.ts +4 -1
  415. package/lib/messages/index.d.ts.map +1 -1
  416. package/lib/messages/index.js +4 -1
  417. package/lib/messages/index.js.map +1 -1
  418. package/lib/messages/renderer.d.ts +142 -0
  419. package/lib/messages/renderer.d.ts.map +1 -0
  420. package/lib/messages/renderer.js +165 -0
  421. package/lib/messages/renderer.js.map +1 -0
  422. package/lib/node/event-loop-monitor.d.ts.map +1 -1
  423. package/lib/node/event-loop-monitor.js +2 -1
  424. package/lib/node/event-loop-monitor.js.map +1 -1
  425. package/lib/node/heap-ceiling.d.ts +61 -0
  426. package/lib/node/heap-ceiling.d.ts.map +1 -0
  427. package/lib/node/heap-ceiling.js +72 -0
  428. package/lib/node/heap-ceiling.js.map +1 -0
  429. package/lib/node/index.d.ts +1 -1
  430. package/lib/node/index.d.ts.map +1 -1
  431. package/lib/node/index.js +5 -1
  432. package/lib/node/index.js.map +1 -1
  433. package/lib/node/latency-from-env.d.ts +1 -1
  434. package/lib/node/latency-from-env.js +1 -1
  435. package/lib/node/lint-grammar.js.map +1 -1
  436. package/lib/node/log-preamble-node.d.ts +5 -3
  437. package/lib/node/log-preamble-node.d.ts.map +1 -1
  438. package/lib/node/log-preamble-node.js +13 -10
  439. package/lib/node/log-preamble-node.js.map +1 -1
  440. package/lib/node/measure-memory.d.ts.map +1 -1
  441. package/lib/node/measure-memory.js +5 -4
  442. package/lib/node/measure-memory.js.map +1 -1
  443. package/lib/node/memory-monitor.d.ts +2 -2
  444. package/lib/node/memory-monitor.d.ts.map +1 -1
  445. package/lib/node/memory-monitor.js +9 -10
  446. package/lib/node/memory-monitor.js.map +1 -1
  447. package/lib/node/node-file-system-provider.d.ts +67 -9
  448. package/lib/node/node-file-system-provider.d.ts.map +1 -1
  449. package/lib/node/node-file-system-provider.js +198 -53
  450. package/lib/node/node-file-system-provider.js.map +1 -1
  451. package/lib/node/profile-capture.d.ts +12 -4
  452. package/lib/node/profile-capture.d.ts.map +1 -1
  453. package/lib/node/profile-capture.js +8 -6
  454. package/lib/node/profile-capture.js.map +1 -1
  455. package/lib/node/profile-digest.js.map +1 -1
  456. package/lib/node/profiling-run.d.ts +13 -3
  457. package/lib/node/profiling-run.d.ts.map +1 -1
  458. package/lib/node/profiling-run.js +17 -8
  459. package/lib/node/profiling-run.js.map +1 -1
  460. package/lib/node/rename-over-open-readers.d.ts +61 -0
  461. package/lib/node/rename-over-open-readers.d.ts.map +1 -0
  462. package/lib/node/rename-over-open-readers.js +80 -0
  463. package/lib/node/rename-over-open-readers.js.map +1 -0
  464. package/lib/node/server-diagnostics.js +1 -1
  465. package/lib/node/server-diagnostics.js.map +1 -1
  466. package/lib/node/server-state-snapshot.js +4 -4
  467. package/lib/node/server-state-snapshot.js.map +1 -1
  468. package/lib/node/socket-launcher.d.ts +20 -4
  469. package/lib/node/socket-launcher.d.ts.map +1 -1
  470. package/lib/node/socket-launcher.js +8 -7
  471. package/lib/node/socket-launcher.js.map +1 -1
  472. package/lib/node/startup-cpu-profile.d.ts +29 -0
  473. package/lib/node/startup-cpu-profile.d.ts.map +1 -0
  474. package/lib/node/startup-cpu-profile.js +91 -0
  475. package/lib/node/startup-cpu-profile.js.map +1 -0
  476. package/lib/node/stdio-launcher.d.ts +10 -10
  477. package/lib/node/stdio-launcher.d.ts.map +1 -1
  478. package/lib/node/stdio-launcher.js +17 -9
  479. package/lib/node/stdio-launcher.js.map +1 -1
  480. package/lib/testing/document-uri-policy-conformance.js +1 -1
  481. package/lib/testing/document-uri-policy-conformance.js.map +1 -1
  482. package/lib/testing/fake-description.js.map +1 -1
  483. package/lib/testing/fake-document.d.ts +16 -4
  484. package/lib/testing/fake-document.d.ts.map +1 -1
  485. package/lib/testing/fake-document.js +18 -3
  486. package/lib/testing/fake-document.js.map +1 -1
  487. package/lib/testing/index.d.ts +1 -1
  488. package/lib/testing/index.d.ts.map +1 -1
  489. package/lib/testing/index.js +2 -1
  490. package/lib/testing/index.js.map +1 -1
  491. package/lib/testing/langium-test-helpers.d.ts.map +1 -1
  492. package/lib/testing/langium-test-helpers.js +1 -0
  493. package/lib/testing/langium-test-helpers.js.map +1 -1
  494. package/lib/testing/make-noop-language-services.js.map +1 -1
  495. package/lib/testing/make-noop-shared-services.d.ts +14 -0
  496. package/lib/testing/make-noop-shared-services.d.ts.map +1 -1
  497. package/lib/testing/make-noop-shared-services.js +28 -2
  498. package/lib/testing/make-noop-shared-services.js.map +1 -1
  499. package/lib/testing/make-test-services.d.ts +72 -14
  500. package/lib/testing/make-test-services.d.ts.map +1 -1
  501. package/lib/testing/make-test-services.js +42 -10
  502. package/lib/testing/make-test-services.js.map +1 -1
  503. package/lib/testing/make-test-tracer.d.ts +12 -0
  504. package/lib/testing/make-test-tracer.d.ts.map +1 -1
  505. package/lib/testing/make-test-tracer.js +13 -0
  506. package/lib/testing/make-test-tracer.js.map +1 -1
  507. package/lib/testing/node/applied-edit-capture.d.ts +29 -0
  508. package/lib/testing/node/applied-edit-capture.d.ts.map +1 -0
  509. package/lib/testing/node/applied-edit-capture.js +117 -0
  510. package/lib/testing/node/applied-edit-capture.js.map +1 -0
  511. package/lib/testing/node/golden-corpus.js.map +1 -1
  512. package/lib/testing/node/index.d.ts +1 -0
  513. package/lib/testing/node/index.d.ts.map +1 -1
  514. package/lib/testing/node/index.js +1 -0
  515. package/lib/testing/node/index.js.map +1 -1
  516. package/lib/testing/node/lsp-harness.d.ts.map +1 -1
  517. package/lib/testing/node/lsp-harness.js +2 -0
  518. package/lib/testing/node/lsp-harness.js.map +1 -1
  519. package/lib/testing/node/lsp-server-connection.d.ts +21 -6
  520. package/lib/testing/node/lsp-server-connection.d.ts.map +1 -1
  521. package/lib/testing/node/lsp-server-connection.js +49 -106
  522. package/lib/testing/node/lsp-server-connection.js.map +1 -1
  523. package/lib/testing/node/scratch-workspace.d.ts.map +1 -1
  524. package/lib/testing/node/scratch-workspace.js +10 -5
  525. package/lib/testing/node/scratch-workspace.js.map +1 -1
  526. package/lib/testing/node/spawned-server.d.ts +30 -1
  527. package/lib/testing/node/spawned-server.d.ts.map +1 -1
  528. package/lib/testing/node/spawned-server.js +39 -2
  529. package/lib/testing/node/spawned-server.js.map +1 -1
  530. package/lib/testing/node/unhandled-rejections.d.ts +20 -0
  531. package/lib/testing/node/unhandled-rejections.d.ts.map +1 -0
  532. package/lib/testing/node/unhandled-rejections.js +32 -0
  533. package/lib/testing/node/unhandled-rejections.js.map +1 -0
  534. package/lib/testing/playwright/browser-capture-bridge.js.map +1 -1
  535. package/lib/testing/playwright/e2e-profiling.js.map +1 -1
  536. package/lib/testing/playwright/flaky-network-proxy.d.ts +76 -0
  537. package/lib/testing/playwright/flaky-network-proxy.d.ts.map +1 -0
  538. package/lib/testing/playwright/flaky-network-proxy.js +164 -0
  539. package/lib/testing/playwright/flaky-network-proxy.js.map +1 -0
  540. package/lib/testing/playwright/index.d.ts +1 -0
  541. package/lib/testing/playwright/index.d.ts.map +1 -1
  542. package/lib/testing/playwright/index.js +1 -0
  543. package/lib/testing/playwright/index.js.map +1 -1
  544. package/lib/testing/playwright/server-log-capture.d.ts +46 -16
  545. package/lib/testing/playwright/server-log-capture.d.ts.map +1 -1
  546. package/lib/testing/playwright/server-log-capture.js +111 -40
  547. package/lib/testing/playwright/server-log-capture.js.map +1 -1
  548. package/lib/testing/playwright/server-log-fixture.d.ts +16 -0
  549. package/lib/testing/playwright/server-log-fixture.d.ts.map +1 -1
  550. package/lib/testing/playwright/server-log-fixture.js +25 -6
  551. package/lib/testing/playwright/server-log-fixture.js.map +1 -1
  552. package/lib/testing/playwright/server-log-region.d.ts +15 -0
  553. package/lib/testing/playwright/server-log-region.d.ts.map +1 -0
  554. package/lib/testing/playwright/server-log-region.js +30 -0
  555. package/lib/testing/playwright/server-log-region.js.map +1 -0
  556. package/lib/testing/playwright/server-log-rename-reporter.d.ts.map +1 -1
  557. package/lib/testing/playwright/server-log-rename-reporter.js +4 -3
  558. package/lib/testing/playwright/server-log-rename-reporter.js.map +1 -1
  559. package/lib/testing/run-update-pipeline.d.ts +8 -5
  560. package/lib/testing/run-update-pipeline.d.ts.map +1 -1
  561. package/lib/testing/run-update-pipeline.js.map +1 -1
  562. package/lib/testing/stub-ast-document-manager.d.ts +11 -52
  563. package/lib/testing/stub-ast-document-manager.d.ts.map +1 -1
  564. package/lib/testing/stub-ast-document-manager.js +31 -62
  565. package/lib/testing/stub-ast-document-manager.js.map +1 -1
  566. package/lib/testing/stub-document-builder.d.ts +33 -11
  567. package/lib/testing/stub-document-builder.d.ts.map +1 -1
  568. package/lib/testing/stub-document-builder.js +103 -5
  569. package/lib/testing/stub-document-builder.js.map +1 -1
  570. package/lib/testing/stub-hydranium-text-documents.d.ts +33 -10
  571. package/lib/testing/stub-hydranium-text-documents.d.ts.map +1 -1
  572. package/lib/testing/stub-hydranium-text-documents.js +132 -16
  573. package/lib/testing/stub-hydranium-text-documents.js.map +1 -1
  574. package/lib/testing/stub-index-manager.js.map +1 -1
  575. package/lib/testing/stub-langium-documents.d.ts +3 -2
  576. package/lib/testing/stub-langium-documents.d.ts.map +1 -1
  577. package/lib/testing/stub-langium-documents.js.map +1 -1
  578. package/lib/testing/stub-model-service.d.ts +9 -8
  579. package/lib/testing/stub-model-service.d.ts.map +1 -1
  580. package/lib/testing/stub-model-service.js +6 -6
  581. package/lib/testing/stub-model-service.js.map +1 -1
  582. package/lib/testing/stub-project-manager.js.map +1 -1
  583. package/lib/testing/stub-self-save-registry.d.ts +1 -1
  584. package/lib/testing/stub-self-save-registry.d.ts.map +1 -1
  585. package/lib/testing/stub-service-registry.d.ts +1 -1
  586. package/lib/testing/stub-service-registry.js.map +1 -1
  587. package/lib/testing/stub-writable-file-system.d.ts +1 -1
  588. package/lib/testing/stub-writable-file-system.d.ts.map +1 -1
  589. package/lib/testing/stub-writable-file-system.js +2 -1
  590. package/lib/testing/stub-writable-file-system.js.map +1 -1
  591. package/lib/util/connection-liveness.d.ts +19 -6
  592. package/lib/util/connection-liveness.d.ts.map +1 -1
  593. package/lib/util/connection-liveness.js +61 -15
  594. package/lib/util/connection-liveness.js.map +1 -1
  595. package/lib/util/environment.d.ts.map +1 -1
  596. package/lib/util/environment.js.map +1 -1
  597. package/lib/util/registry.d.ts.map +1 -1
  598. package/package.json +38 -57
  599. package/src/browser/host-heads-in-worker.ts +142 -0
  600. package/src/browser/index.ts +17 -0
  601. package/src/browser/indexeddb-file-system-store.ts +192 -0
  602. package/src/browser/start-language-server-in-worker.ts +51 -0
  603. package/src/documents/ast-document-manager.ts +467 -233
  604. package/src/documents/client-ids.ts +5 -22
  605. package/src/documents/client-session-errors.ts +24 -0
  606. package/src/documents/client-session-registry.ts +262 -0
  607. package/src/documents/dirty-state-tracker.ts +167 -0
  608. package/src/documents/document-release-handler.ts +404 -0
  609. package/src/documents/document-release-scheduler.ts +121 -0
  610. package/src/documents/file-system-task-queue.ts +74 -0
  611. package/src/documents/hydranium-text-documents.ts +976 -595
  612. package/src/documents/index.ts +10 -2
  613. package/src/documents/language-client-shadow.ts +452 -0
  614. package/src/documents/model-ledger.ts +66 -0
  615. package/src/documents/text-ledger.ts +112 -0
  616. package/src/documents/version-sync-service.ts +275 -0
  617. package/src/index.ts +8 -0
  618. package/src/langium/ast-extension/ast-extension-service.ts +77 -41
  619. package/src/langium/ast-extension/ast-node-builder.ts +66 -22
  620. package/src/langium/bootstrap.ts +95 -52
  621. package/src/langium/build-phase-pass/build-phase-pass-service.ts +29 -19
  622. package/src/langium/build-phase-pass/build-phase-pass.ts +37 -8
  623. package/src/langium/composite-ast-reflection.ts +112 -0
  624. package/src/langium/config/configuration-provider.ts +119 -0
  625. package/src/langium/config/index.ts +1 -0
  626. package/src/langium/diagnostics/hydranium-langium-profiler.ts +15 -39
  627. package/src/langium/diagnostics/log-preamble.ts +1 -1
  628. package/src/langium/diagnostics/logger.ts +38 -11
  629. package/src/langium/diagnostics/lsp-logger.ts +61 -16
  630. package/src/langium/document-builder/build-pipeline-integration.ts +46 -32
  631. package/src/langium/document-builder/build-session.ts +4 -3
  632. package/src/langium/document-builder/document-builder.ts +616 -73
  633. package/src/langium/integration-services.ts +59 -28
  634. package/src/langium/integrity/integrity-rule.ts +16 -8
  635. package/src/langium/integrity/integrity-service.ts +296 -69
  636. package/src/langium/keys/containment.ts +87 -0
  637. package/src/langium/keys/index.ts +1 -0
  638. package/src/langium/keys/name-based-key-provider.ts +4 -0
  639. package/src/langium/language-module.ts +49 -8
  640. package/src/langium/model-service/client-session.ts +704 -0
  641. package/src/langium/model-service/index.ts +2 -0
  642. package/src/langium/model-service/model-events.ts +80 -0
  643. package/src/langium/model-service/model-service.ts +908 -485
  644. package/src/langium/module.ts +212 -67
  645. package/src/langium/naming/name-provider.ts +44 -8
  646. package/src/langium/naming/name-separator-validation.ts +25 -3
  647. package/src/langium/project/abstract-project-manager.ts +13 -5
  648. package/src/langium/project/project-change-event.ts +2 -2
  649. package/src/langium/residency/cst-residency-service.ts +51 -17
  650. package/src/langium/scope/fallback-scope.ts +38 -0
  651. package/src/langium/scope/hydranium-scope-computation.ts +45 -44
  652. package/src/langium/scope/hydranium-scope-provider.ts +64 -27
  653. package/src/langium/scope/index.ts +1 -0
  654. package/src/langium/scope/reference-candidate-provider.ts +6 -5
  655. package/src/langium/scope/scope-extension-service.ts +74 -59
  656. package/src/langium/scope/scoped-ast-node-description.ts +1 -3
  657. package/src/langium/serialization/abstract-serializer.ts +57 -41
  658. package/src/langium/serialization/json-serializer.ts +14 -3
  659. package/src/langium/serialization/serializer.ts +1 -1
  660. package/src/langium/serialization/yaml-serializer.ts +4 -0
  661. package/src/langium/service-registry.ts +41 -2
  662. package/src/langium/shared-services.ts +26 -6
  663. package/src/langium/single-langium-copy.ts +42 -0
  664. package/src/langium/transfer/transfer-encoder.ts +102 -45
  665. package/src/langium/trivia/comment-preserver.ts +1100 -0
  666. package/src/langium/trivia/document-ending-preserver.ts +71 -0
  667. package/src/langium/trivia/index.ts +14 -0
  668. package/src/langium/trivia/trivia-contribution.ts +39 -0
  669. package/src/langium/trivia/trivia-preserver.ts +56 -0
  670. package/src/langium/trivia/trivia-service.ts +99 -0
  671. package/src/langium/update-rewrite/update-rewrite-service.ts +1 -1
  672. package/src/langium/update-rewrite/update-rewrite.ts +1 -1
  673. package/src/langium/validation/document-validator.ts +528 -13
  674. package/src/langium/validation/validation-contribution-collector.ts +10 -1
  675. package/src/langium/workspace/document-uri-policy.ts +32 -18
  676. package/src/langium/workspace/file-not-found.ts +35 -0
  677. package/src/langium/workspace/file-system-provider.ts +253 -16
  678. package/src/langium/workspace/hydranium-langium-document-factory.ts +83 -0
  679. package/src/langium/workspace/hydranium-workspace-lock.ts +86 -2
  680. package/src/langium/workspace/hydranium-workspace-manager.ts +241 -35
  681. package/src/langium/workspace/in-memory-file-system-provider.ts +54 -23
  682. package/src/langium/workspace/index.ts +1 -0
  683. package/src/langium/workspace/initialize-workspace.ts +43 -5
  684. package/src/langium/workspace/langium-documents.ts +19 -1
  685. package/src/langium/workspace/persistent-file-system-provider.ts +26 -14
  686. package/src/langium/workspace/self-save-registry.ts +118 -0
  687. package/src/langium/workspace/virtual-document.ts +106 -25
  688. package/src/langium/workspace/write-lock-scope.ts +27 -12
  689. package/src/launcher/integrated-server.ts +3 -1
  690. package/src/locale/index.ts +10 -0
  691. package/src/locale/server-locale.ts +86 -0
  692. package/src/lsp/completion/hydranium-completion-provider.ts +82 -2
  693. package/src/lsp/connection-features.ts +67 -0
  694. package/src/lsp/diagnostics-connection.ts +56 -0
  695. package/src/lsp/hydranium-document-update-handler.ts +285 -111
  696. package/src/lsp/index.ts +3 -1
  697. package/src/lsp/lsp-latency.ts +62 -0
  698. package/src/lsp/semantic-token-provider.ts +74 -7
  699. package/src/lsp/shared-module.ts +4 -8
  700. package/src/lsp/start-language-server.ts +13 -7
  701. package/src/messages/carriers.ts +23 -15
  702. package/src/messages/index.ts +13 -1
  703. package/src/messages/renderer.ts +212 -0
  704. package/src/node/event-loop-monitor.ts +2 -1
  705. package/src/node/heap-ceiling.ts +108 -0
  706. package/src/node/index.ts +5 -1
  707. package/src/node/latency-from-env.ts +1 -1
  708. package/src/node/log-preamble-node.ts +20 -10
  709. package/src/node/measure-memory.ts +5 -4
  710. package/src/node/memory-monitor.ts +10 -10
  711. package/src/node/node-file-system-provider.ts +214 -57
  712. package/src/node/profile-capture.ts +16 -15
  713. package/src/node/profiling-run.ts +30 -8
  714. package/src/node/rename-over-open-readers.ts +94 -0
  715. package/src/node/server-diagnostics.ts +1 -1
  716. package/src/node/server-state-snapshot.ts +5 -5
  717. package/src/node/socket-launcher.ts +27 -11
  718. package/src/node/startup-cpu-profile.ts +94 -0
  719. package/src/node/stdio-launcher.ts +22 -14
  720. package/src/testing/document-uri-policy-conformance.ts +1 -1
  721. package/src/testing/fake-document.ts +24 -5
  722. package/src/testing/index.ts +2 -1
  723. package/src/testing/langium-test-helpers.ts +1 -0
  724. package/src/testing/make-noop-shared-services.ts +50 -2
  725. package/src/testing/make-test-services.ts +125 -31
  726. package/src/testing/make-test-tracer.ts +26 -0
  727. package/src/testing/node/applied-edit-capture.ts +141 -0
  728. package/src/testing/node/index.ts +1 -0
  729. package/src/testing/node/lsp-harness.ts +2 -0
  730. package/src/testing/node/lsp-server-connection.ts +83 -119
  731. package/src/testing/node/scratch-workspace.ts +10 -5
  732. package/src/testing/node/spawned-server.ts +57 -3
  733. package/src/testing/node/unhandled-rejections.ts +31 -0
  734. package/src/testing/parse-semantic-root.ts +1 -1
  735. package/src/testing/playwright/flaky-network-proxy.ts +240 -0
  736. package/src/testing/playwright/index.ts +1 -0
  737. package/src/testing/playwright/server-log-capture.ts +137 -47
  738. package/src/testing/playwright/server-log-fixture.ts +46 -6
  739. package/src/testing/playwright/server-log-region.ts +32 -0
  740. package/src/testing/playwright/server-log-rename-reporter.ts +4 -3
  741. package/src/testing/run-update-pipeline.ts +8 -5
  742. package/src/testing/stub-ast-document-manager.ts +47 -128
  743. package/src/testing/stub-document-builder.ts +133 -18
  744. package/src/testing/stub-hydranium-text-documents.ts +184 -27
  745. package/src/testing/stub-langium-documents.ts +3 -2
  746. package/src/testing/stub-model-service.ts +11 -10
  747. package/src/testing/stub-self-save-registry.ts +1 -1
  748. package/src/testing/stub-service-registry.ts +1 -1
  749. package/src/testing/stub-writable-file-system.ts +3 -2
  750. package/src/util/connection-liveness.ts +67 -15
  751. package/src/util/environment.ts +9 -1
  752. package/lib/documents/language-client-text-shadow.d.ts +0 -101
  753. package/lib/documents/language-client-text-shadow.d.ts.map +0 -1
  754. package/lib/documents/language-client-text-shadow.js +0 -156
  755. package/lib/documents/language-client-text-shadow.js.map +0 -1
  756. package/lib/documents/self-save-registry.d.ts +0 -55
  757. package/lib/documents/self-save-registry.d.ts.map +0 -1
  758. package/lib/documents/self-save-registry.js.map +0 -1
  759. package/lib/lsp/instrument-connection.d.ts +0 -36
  760. package/lib/lsp/instrument-connection.d.ts.map +0 -1
  761. package/lib/lsp/instrument-connection.js +0 -62
  762. package/lib/lsp/instrument-connection.js.map +0 -1
  763. package/lib/node/process-memory.d.ts +0 -66
  764. package/lib/node/process-memory.d.ts.map +0 -1
  765. package/lib/node/process-memory.js +0 -252
  766. package/lib/node/process-memory.js.map +0 -1
  767. package/src/documents/language-client-text-shadow.ts +0 -175
  768. package/src/documents/self-save-registry.ts +0 -81
  769. package/src/lsp/instrument-connection.ts +0 -66
  770. package/src/node/process-memory.ts +0 -299
@@ -6,13 +6,21 @@
6
6
  *
7
7
  * SPDX-License-Identifier: MIT
8
8
  ********************************************************************************/
9
- import { type Clock, type Logger, type Project, type Tracer, type TransferDiagnostic, type TransferElement } from '@hydranium/protocol';
9
+ import { type Clock, type Locale, type Logger, type Project, type Tracer, type TransferDiagnostic, type TransferElement } from '@hydranium/protocol';
10
+ import { type ServerLocale } from '../locale/server-locale.js';
11
+ import { type MessageRenderer } from '../messages/renderer.js';
10
12
  import type { Harness } from '@hydranium/protocol/testing';
11
13
  import { type AstNode, type AstNodeDescription, type WorkspaceLock } from '@hydranium/langium';
14
+ import { type ClientSessionFactory, type ClientSessionFactoryOptions } from '../langium/model-service/client-session.js';
12
15
  import type { ModelService, ModelServiceOptions } from '../langium/model-service/model-service.js';
13
16
  import type { ServerSharedServices } from '../langium/module.js';
14
- import { TransferEncoder } from '../langium/transfer/transfer-encoder.js';
17
+ import type { AstDiagnostic } from '../langium/validation/document-validator.js';
18
+ import { type TransferEncoder } from '../langium/transfer/transfer-encoder.js';
15
19
  import { type DocumentUriPolicy } from '../langium/workspace/document-uri-policy.js';
20
+ import { type FileSystemTaskQueue } from '../documents/file-system-task-queue.js';
21
+ import { type ModelLedger } from '../documents/model-ledger.js';
22
+ import { type DocumentReleaseHandler } from '../documents/document-release-handler.js';
23
+ import { type VersionSyncService } from '../documents/version-sync-service.js';
16
24
  import type { FakeDocumentOptions } from './fake-document.js';
17
25
  import { type StubDocumentBuilder } from './stub-document-builder.js';
18
26
  import { type StubIndexManager } from './stub-index-manager.js';
@@ -32,8 +40,16 @@ import { type StubWritableFileSystem } from './stub-writable-file-system.js';
32
40
  * to `ServerSharedServices` in {@link makeTestServices} is therefore the
33
41
  * single named place where the "stub stands in for the full service tree"
34
42
  * assertion happens.
43
+ *
44
+ * **`TDiagnostic` and `TTransferDiagnostic` are the two ends of a conversion
45
+ * and must stay separate.** The first is what the build left on
46
+ * `LangiumDocument.diagnostics` and what `ModelService` hands back on an
47
+ * `AstDocument`; the second is what `TransferEncoder.toTransferDiagnostic`
48
+ * produces for the wire. One parameter serving both makes the tree
49
+ * unbindable for an adopter who extends either shape, since extending one
50
+ * says nothing about the other.
35
51
  */
36
- export interface TestSharedServices<TAst extends AstNode = AstNode, TDiagnostic extends TransferDiagnostic = TransferDiagnostic, TTransfer extends TransferElement = TransferElement, TProject extends Project = Project> {
52
+ export interface TestSharedServices<TAst extends AstNode = AstNode, TDiagnostic extends AstDiagnostic = AstDiagnostic, TTransfer extends TransferElement = TransferElement, TProject extends Project = Project, TTransferDiagnostic extends TransferDiagnostic = TransferDiagnostic> {
37
53
  readonly Clock: Clock;
38
54
  readonly Logger: Logger;
39
55
  readonly Tracer: Tracer;
@@ -53,6 +69,8 @@ export interface TestSharedServices<TAst extends AstNode = AstNode, TDiagnostic
53
69
  SelfSaveRegistry: StubSelfSaveRegistry;
54
70
  ProjectManager: StubProjectManager<TProject>;
55
71
  DocumentUriPolicy: DocumentUriPolicy;
72
+ /** The REAL queue: a stub that runs each task at once hides the save interleaving the queue exists to prevent. */
73
+ FileSystemTaskQueue: FileSystemTaskQueue;
56
74
  /**
57
75
  * Present only when {@link MakeTestServicesOptions.seedIndex} was passed.
58
76
  * Omitted otherwise for the same reason as `ServiceRegistry` — see that
@@ -69,14 +87,30 @@ export interface TestSharedServices<TAst extends AstNode = AstNode, TDiagnostic
69
87
  * through this tree and let a reentrant write pass unnoticed.
70
88
  */
71
89
  WorkspaceLock: WorkspaceLock;
90
+ /** The REAL ledger: it is a weak map with no dependencies. */
91
+ ModelLedger: ModelLedger;
92
+ /** The REAL service, over this tree's stubs; it reconciles nothing against the stub store. */
93
+ VersionSyncService: VersionSyncService;
94
+ /** The REAL handler, over this tree's stubs; the stub store releases nothing to it. */
95
+ DocumentReleaseHandler: DocumentReleaseHandler;
72
96
  };
73
97
  readonly model: {
74
- TransferEncoder: TransferEncoder<unknown, TDiagnostic>;
98
+ TransferEncoder: TransferEncoder<TTransferDiagnostic>;
75
99
  ModelService: ModelService<TAst, TDiagnostic, TTransfer>;
100
+ ClientSessionFactory: ClientSessionFactory;
76
101
  };
102
+ /**
103
+ * The REAL services, not stubs — the framework renderer's no-catalogue
104
+ * behaviour is a pass-through, so the stub tree agrees with a production one
105
+ * unless a test installs a catalogue. Bound rather than omitted because
106
+ * `HydraniumDocumentBuilder` renders through the renderer on every
107
+ * `Validated` phase, where an omitted slot is a `TypeError`.
108
+ */
109
+ readonly ServerLocale: ServerLocale;
110
+ readonly MessageRenderer: MessageRenderer;
77
111
  }
78
112
  /** Optional configuration for {@link makeTestServices}. */
79
- export interface MakeTestServicesOptions<TAst extends AstNode = AstNode, TDiagnostic extends TransferDiagnostic = TransferDiagnostic, TTransfer extends TransferElement = TransferElement, TProject extends Project = Project> {
113
+ export interface MakeTestServicesOptions<TAst extends AstNode = AstNode, TDiagnostic extends AstDiagnostic = AstDiagnostic, TTransfer extends TransferElement = TransferElement, TProject extends Project = Project, TTransferDiagnostic extends TransferDiagnostic = TransferDiagnostic> {
80
114
  /**
81
115
  * Serialiser used by the bundled `StubModelService`. The stub tree
82
116
  * routes no per-language `Serializer` (the stub languages bind no-op slots),
@@ -87,6 +121,14 @@ export interface MakeTestServicesOptions<TAst extends AstNode = AstNode, TDiagno
87
121
  * for tests that don't assert on the produced text.
88
122
  */
89
123
  serialize?: (uri: string, root: TTransfer) => string;
124
+ /**
125
+ * Renderer bound on `MessageRenderer`. Default: the framework's own, which
126
+ * passes every sentence through unchanged. Supply one to install a catalogue
127
+ * or to drive the throwing path.
128
+ */
129
+ messageRenderer?: (services: ServerSharedServices<TProject>) => MessageRenderer;
130
+ /** Locale handed to the bundle's {@link ServerLocale}. Default: none, i.e. the framework's English. */
131
+ locale?: Locale;
90
132
  /**
91
133
  * Languages to register on a {@link StubServiceRegistry} bound on the
92
134
  * `ServiceRegistry` slot. This is how a test gets multi-language routing:
@@ -95,7 +137,7 @@ export interface MakeTestServicesOptions<TAst extends AstNode = AstNode, TDiagno
95
137
  *
96
138
  * **Default: no `ServiceRegistry` slot at all.** Binding an empty registry
97
139
  * by default would silently change behaviour for the tests that rely on the
98
- * slot being absent — `ModelService.updateRewriteService` optional-chains it
140
+ * slot being absent — `DefaultModelService.rewriteModel` optional-chains it
99
141
  * precisely for those bundles — so a registry appears only when a test asks
100
142
  * for one.
101
143
  */
@@ -153,16 +195,23 @@ export interface MakeTestServicesOptions<TAst extends AstNode = AstNode, TDiagno
153
195
  modelService?: (services: ServerSharedServices<TProject>) => ModelService<TAst, TDiagnostic, TTransfer>;
154
196
  /**
155
197
  * Framework {@link ModelServiceOptions} for the DEFAULT stub service, so a
156
- * test can reach an option-gated path (`serializeBuilds`, the slow-warn
157
- * threshold) without supplying a whole {@link modelService} factory. Ignored
158
- * when `modelService` is given — that factory owns its own construction.
198
+ * test can reach an option-gated path (`allowReentrantBuilds`) without supplying
199
+ * a whole {@link modelService} factory. Ignored when `modelService` is
200
+ * given — that factory owns its own construction.
159
201
  */
160
202
  modelServiceOptions?: ModelServiceOptions;
203
+ /**
204
+ * Options of the {@link DefaultClientSessionFactory} bound on
205
+ * `model.ClientSessionFactory`, so a test can reach the slow-update warn.
206
+ * Its sessions serialise and rebuild through the `model.ModelService` slot,
207
+ * so a test of a model service subclass passes it as {@link modelService}.
208
+ */
209
+ clientSessionFactoryOptions?: ClientSessionFactoryOptions;
161
210
  /**
162
211
  * Override the {@link TransferEncoder} factory. Default: framework
163
212
  * {@link TransferEncoder} with no overrides.
164
213
  */
165
- transferEncoder?: (services: ServerSharedServices<TProject>) => TransferEncoder<unknown, TDiagnostic>;
214
+ transferEncoder?: (services: ServerSharedServices<TProject, TTransferDiagnostic>) => TransferEncoder<TTransferDiagnostic>;
166
215
  }
167
216
  /**
168
217
  * Bundle returned by {@link makeTestServices}. Exposes the assembled
@@ -177,8 +226,8 @@ export interface MakeTestServicesOptions<TAst extends AstNode = AstNode, TDiagno
177
226
  * uniform teardown hook (a no-op: the stubs hold only in-memory state,
178
227
  * released with the bundle when it goes out of scope).
179
228
  */
180
- export interface TestServicesBundle<TAst extends AstNode = AstNode, TDiagnostic extends TransferDiagnostic = TransferDiagnostic, TTransfer extends TransferElement = TransferElement, TProject extends Project = Project> extends Harness {
181
- readonly services: ServerSharedServices<TProject>;
229
+ export interface TestServicesBundle<TAst extends AstNode = AstNode, TDiagnostic extends AstDiagnostic = AstDiagnostic, TTransfer extends TransferElement = TransferElement, TProject extends Project = Project, TTransferDiagnostic extends TransferDiagnostic = TransferDiagnostic> extends Harness {
230
+ readonly services: ServerSharedServices<TProject, TTransferDiagnostic>;
182
231
  readonly documents: StubLangiumDocuments<TAst, TDiagnostic>;
183
232
  readonly textDocuments: StubHydraniumTextDocuments;
184
233
  readonly astDocumentManager: StubAstDocumentManager<TAst, TDiagnostic>;
@@ -187,6 +236,7 @@ export interface TestServicesBundle<TAst extends AstNode = AstNode, TDiagnostic
187
236
  readonly selfSaveRegistry: StubSelfSaveRegistry;
188
237
  readonly projectManager: StubProjectManager<TProject>;
189
238
  readonly documentUriPolicy: DocumentUriPolicy;
239
+ readonly modelLedger: ModelLedger;
190
240
  /**
191
241
  * The registry bound on the `ServiceRegistry` slot, or `undefined` when no
192
242
  * {@link MakeTestServicesOptions.languages} were declared.
@@ -198,10 +248,18 @@ export interface TestServicesBundle<TAst extends AstNode = AstNode, TDiagnostic
198
248
  */
199
249
  readonly indexManager: StubIndexManager | undefined;
200
250
  readonly modelService: ModelService<TAst, TDiagnostic, TTransfer>;
201
- readonly transferEncoder: TransferEncoder<unknown, TDiagnostic>;
251
+ readonly transferEncoder: TransferEncoder<TTransferDiagnostic>;
202
252
  readonly logger: Logger;
203
253
  /** The clock bound on the `Clock` slot — a `makeFakeClock()` if one was passed. */
204
254
  readonly clock: Clock;
255
+ /**
256
+ * The service bound on `ServerLocale`, so a test can hand over a locale
257
+ * mid-run — which is also how it verifies the renderer reads the locale per
258
+ * render rather than caching it at construction.
259
+ */
260
+ readonly serverLocale: ServerLocale;
261
+ /** The renderer bound on `MessageRenderer` — the framework's own unless one was supplied. */
262
+ readonly messageRenderer: MessageRenderer;
205
263
  }
206
264
  /**
207
265
  * Build a {@link ServerSharedServices} tree backed by the framework's
@@ -213,5 +271,5 @@ export interface TestServicesBundle<TAst extends AstNode = AstNode, TDiagnostic
213
271
  * computation, etc.) should keep using `bootstrapLangium(...)` rather than
214
272
  * this bundle.
215
273
  */
216
- export declare function makeTestServices<TAst extends AstNode = AstNode, TDiagnostic extends TransferDiagnostic = TransferDiagnostic, TTransfer extends TransferElement = TransferElement, TProject extends Project = Project>(options?: MakeTestServicesOptions<TAst, TDiagnostic, TTransfer, TProject>): TestServicesBundle<TAst, TDiagnostic, TTransfer, TProject>;
274
+ export declare function makeTestServices<TAst extends AstNode = AstNode, TDiagnostic extends AstDiagnostic = AstDiagnostic, TTransfer extends TransferElement = TransferElement, TProject extends Project = Project, TTransferDiagnostic extends TransferDiagnostic = TransferDiagnostic>(options?: MakeTestServicesOptions<TAst, TDiagnostic, TTransfer, TProject, TTransferDiagnostic>): TestServicesBundle<TAst, TDiagnostic, TTransfer, TProject, TTransferDiagnostic>;
217
275
  //# sourceMappingURL=make-test-services.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"make-test-services.d.ts","sourceRoot":"","sources":["../../src/testing/make-test-services.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"make-test-services.d.ts","sourceRoot":"","sources":["../../src/testing/make-test-services.ts"],"names":[],"mappings":"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"}
@@ -7,9 +7,16 @@
7
7
  * SPDX-License-Identifier: MIT
8
8
  ********************************************************************************/
9
9
  import { DefaultTracer, NoopLogger, SystemClock } from '@hydranium/protocol';
10
- import { TransferEncoder } from '../langium/transfer/transfer-encoder.js';
10
+ import { DefaultServerLocale } from '../locale/server-locale.js';
11
+ import { DefaultMessageRenderer } from '../messages/renderer.js';
12
+ import { DefaultClientSessionFactory } from '../langium/model-service/client-session.js';
13
+ import { DefaultTransferEncoder } from '../langium/transfer/transfer-encoder.js';
11
14
  import { DefaultDocumentUriPolicy } from '../langium/workspace/document-uri-policy.js';
12
15
  import { HydraniumWorkspaceLock } from '../langium/workspace/hydranium-workspace-lock.js';
16
+ import { DefaultFileSystemTaskQueue } from '../documents/file-system-task-queue.js';
17
+ import { DefaultModelLedger } from '../documents/model-ledger.js';
18
+ import { DefaultDocumentReleaseHandler } from '../documents/document-release-handler.js';
19
+ import { DefaultVersionSyncService } from '../documents/version-sync-service.js';
13
20
  import { makeStubDocumentBuilder } from './stub-document-builder.js';
14
21
  import { makeStubIndexManager } from './stub-index-manager.js';
15
22
  import { makeStubLangiumDocuments } from './stub-langium-documents.js';
@@ -33,14 +40,16 @@ import { makeStubWritableFileSystem } from './stub-writable-file-system.js';
33
40
  export function makeTestServices(options = {}) {
34
41
  const documents = makeStubLangiumDocuments(options.seedDocuments);
35
42
  const textDocuments = makeStubHydraniumTextDocuments();
36
- const documentBuilder = makeStubDocumentBuilder();
37
- const selfSaveRegistry = makeStubSelfSaveRegistry();
38
- const fileSystem = makeStubWritableFileSystem(selfSaveRegistry);
39
- const projectManager = makeStubProjectManager(options.seedProjects);
40
- const astDocumentManager = makeStubAstDocumentManager(textDocuments, fileSystem, documents);
41
43
  const logger = options.logger ?? new NoopLogger();
42
44
  const clock = options.clock ?? new SystemClock();
43
45
  const tracer = new DefaultTracer(logger, clock);
46
+ const workspaceLock = new HydraniumWorkspaceLock({ Clock: clock, Tracer: tracer });
47
+ const documentBuilder = makeStubDocumentBuilder(workspaceLock);
48
+ const selfSaveRegistry = makeStubSelfSaveRegistry();
49
+ const fileSystem = makeStubWritableFileSystem(selfSaveRegistry);
50
+ const projectManager = makeStubProjectManager(options.seedProjects);
51
+ const modelLedger = new DefaultModelLedger();
52
+ const astDocumentManager = makeStubAstDocumentManager(textDocuments, fileSystem, documents, modelLedger);
44
53
  const documentUriPolicy = options.documentUriPolicy ?? new DefaultDocumentUriPolicy();
45
54
  const serviceRegistry = options.languages
46
55
  ? makeStubServiceRegistry(options.languages, { openLanguageIds: options.openLanguageIds })
@@ -62,7 +71,7 @@ export function makeTestServices(options = {}) {
62
71
  // is dependency-free (as `HydraniumWorkspaceLock` is) — a no-op stub of a
63
72
  // synchronisation primitive hides the very interleaving it exists to prevent.
64
73
  //
65
- // `model.TransferEncoder` / `model.ModelService` are populated below
74
+ // The `model` slots are populated below
66
75
  // (after the factories run); the literal uses unsafe casts to
67
76
  // partially-built objects to satisfy TestSharedServices, then patches
68
77
  // them in.
@@ -86,21 +95,41 @@ export function makeTestServices(options = {}) {
86
95
  // Spread for the same reason as `ServiceRegistry` above — the slot must
87
96
  // be genuinely ABSENT, not present-and-undefined, when no index was seeded.
88
97
  ...(indexManager ? { IndexManager: indexManager } : {}),
89
- WorkspaceLock: new HydraniumWorkspaceLock()
98
+ WorkspaceLock: workspaceLock,
99
+ FileSystemTaskQueue: new DefaultFileSystemTaskQueue({ workspace: { DocumentUriPolicy: documentUriPolicy } }),
100
+ ModelLedger: modelLedger,
101
+ // Patched in below, as both read the tree they belong to.
102
+ VersionSyncService: {},
103
+ DocumentReleaseHandler: {}
90
104
  },
91
- model: {}
105
+ model: {},
106
+ ServerLocale: {},
107
+ MessageRenderer: {}
92
108
  };
93
109
  const sharedServices = services;
110
+ // Patched in after the literal, like `model` below: both read the tree they
111
+ // belong to, and the renderer reads the locale service.
112
+ services.workspace.VersionSyncService = new DefaultVersionSyncService(sharedServices);
113
+ services.workspace.DocumentReleaseHandler = new DefaultDocumentReleaseHandler(sharedServices);
114
+ const mutableMessages = services;
115
+ const serverLocale = new DefaultServerLocale(sharedServices);
116
+ if (options.locale) {
117
+ serverLocale.accept(options.locale);
118
+ }
119
+ mutableMessages.ServerLocale = serverLocale;
120
+ const messageRenderer = options.messageRenderer?.(sharedServices) ?? new DefaultMessageRenderer(sharedServices);
121
+ mutableMessages.MessageRenderer = messageRenderer;
94
122
  const serialize = options.serialize ?? ((_uri, root) => JSON.stringify(root));
95
123
  const transferEncoder = options.transferEncoder
96
124
  ? options.transferEncoder(sharedServices)
97
- : new TransferEncoder(sharedServices);
125
+ : new DefaultTransferEncoder(sharedServices);
98
126
  const modelService = options.modelService
99
127
  ? options.modelService(sharedServices)
100
128
  : makeStubModelService(sharedServices, serialize, options.modelServiceOptions);
101
129
  const mutableModel = services.model;
102
130
  mutableModel.TransferEncoder = transferEncoder;
103
131
  mutableModel.ModelService = modelService;
132
+ mutableModel.ClientSessionFactory = new DefaultClientSessionFactory(sharedServices, options.clientSessionFactoryOptions);
104
133
  return {
105
134
  services: sharedServices,
106
135
  documents,
@@ -111,12 +140,15 @@ export function makeTestServices(options = {}) {
111
140
  selfSaveRegistry,
112
141
  projectManager,
113
142
  documentUriPolicy,
143
+ modelLedger,
114
144
  serviceRegistry,
115
145
  indexManager,
116
146
  modelService,
117
147
  transferEncoder,
118
148
  logger,
119
149
  clock,
150
+ serverLocale,
151
+ messageRenderer,
120
152
  dispose: () => {
121
153
  // No-op: the bundled stubs hold only in-memory state (maps, arrays),
122
154
  // released with the bundle when it goes out of scope. The hook exists
@@ -1 +1 @@
1
- {"version":3,"file":"make-test-services.js","sourceRoot":"","sources":["../../src/testing/make-test-services.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"make-test-services.js","sourceRoot":"","sources":["../../src/testing/make-test-services.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAEJ,aAAa,EAGb,UAAU,EAEV,WAAW,EAIb,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,mBAAmB,EAAqB,MAAM,4BAA4B,CAAC;AACpF,OAAO,EAAE,sBAAsB,EAAwB,MAAM,yBAAyB,CAAC;AAGvF,OAAO,EAGJ,2BAA2B,EAC7B,MAAM,4CAA4C,CAAC;AAIpD,OAAO,EAAE,sBAAsB,EAAwB,MAAM,yCAAyC,CAAC;AACvG,OAAO,EAAE,wBAAwB,EAA0B,MAAM,6CAA6C,CAAC;AAC/G,OAAO,EAAE,sBAAsB,EAAE,MAAM,kDAAkD,CAAC;AAC1F,OAAO,EAAE,0BAA0B,EAA4B,MAAM,wCAAwC,CAAC;AAC9G,OAAO,EAAE,kBAAkB,EAAoB,MAAM,8BAA8B,CAAC;AACpF,OAAO,EAAE,6BAA6B,EAA+B,MAAM,0CAA0C,CAAC;AACtH,OAAO,EAAE,yBAAyB,EAA2B,MAAM,sCAAsC,CAAC;AAE1G,OAAO,EAAE,uBAAuB,EAA4B,MAAM,4BAA4B,CAAC;AAC/F,OAAO,EAAE,oBAAoB,EAAyB,MAAM,yBAAyB,CAAC;AACtF,OAAO,EAAE,wBAAwB,EAA6B,MAAM,6BAA6B,CAAC;AAClG,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,OAAO,EAAE,0BAA0B,EAA+B,MAAM,gCAAgC,CAAC;AACzG,OAAO,EAAE,sBAAsB,EAA2B,MAAM,2BAA2B,CAAC;AAC5F,OAAO,EAAE,wBAAwB,EAA6B,MAAM,8BAA8B,CAAC;AACnG,OAAO,EAAE,8BAA8B,EAAmC,MAAM,oCAAoC,CAAC;AACrH,OAAO,EAAE,uBAAuB,EAAyD,MAAM,4BAA4B,CAAC;AAC5H,OAAO,EAAE,0BAA0B,EAA+B,MAAM,gCAAgC,CAAC;AA6PzG;;;;;;;;;GASG;AACH,MAAM,UAAU,gBAAgB,CAO7B,OAAO,GAAyF,EAAE;IAElG,MAAM,SAAS,GAAG,wBAAwB,CAAoB,OAAO,CAAC,aAAa,CAAC,CAAC;IACrF,MAAM,aAAa,GAAG,8BAA8B,EAAE,CAAC;IACvD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;IAClD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,IAAI,WAAW,EAAE,CAAC;IACjD,MAAM,MAAM,GAAG,IAAI,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IAChD,MAAM,aAAa,GAAG,IAAI,sBAAsB,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;IACnF,MAAM,eAAe,GAAG,uBAAuB,CAAC,aAAa,CAAC,CAAC;IAC/D,MAAM,gBAAgB,GAAG,wBAAwB,EAAE,CAAC;IACpD,MAAM,UAAU,GAAG,0BAA0B,CAAC,gBAAgB,CAAC,CAAC;IAChE,MAAM,cAAc,GAAG,sBAAsB,CAAW,OAAO,CAAC,YAAY,CAAC,CAAC;IAC9E,MAAM,WAAW,GAAG,IAAI,kBAAkB,EAAE,CAAC;IAC7C,MAAM,kBAAkB,GAAG,0BAA0B,CAAoB,aAAa,EAAE,UAAU,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;IAC5H,MAAM,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,IAAI,IAAI,wBAAwB,EAAE,CAAC;IACtF,MAAM,eAAe,GAAG,OAAO,CAAC,SAAS;QACtC,CAAC,CAAC,uBAAuB,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE,CAAC;QAC1F,CAAC,CAAC,SAAS,CAAC;IACf,MAAM,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,oBAAoB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAE7F,sEAAsE;IACtE,4EAA4E;IAC5E,4EAA4E;IAC5E,0EAA0E;IAC1E,0EAA0E;IAC1E,wEAAwE;IACxE,+CAA+C;IAC/C,EAAE;IACF,4EAA4E;IAC5E,4EAA4E;IAC5E,0EAA0E;IAC1E,6EAA6E;IAC7E,4EAA4E;IAC5E,0EAA0E;IAC1E,8EAA8E;IAC9E,EAAE;IACF,wCAAwC;IACxC,8DAA8D;IAC9D,sEAAsE;IACtE,WAAW;IACX,MAAM,QAAQ,GAAoF;QAC/F,KAAK,EAAE,KAAK;QACZ,MAAM,EAAE,MAAM;QACd,MAAM,EAAE,MAAM;QACd,mEAAmE;QACnE,8EAA8E;QAC9E,8EAA8E;QAC9E,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,eAAe,EAAE,eAAe,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChE,SAAS,EAAE;YACR,gBAAgB,EAAE,SAAS;YAC3B,eAAe,EAAE,eAAe;YAChC,aAAa,EAAE,aAAa;YAC5B,kBAAkB,EAAE,kBAAkB;YACtC,kBAAkB,EAAE,UAAU;YAC9B,gBAAgB,EAAE,gBAAgB;YAClC,cAAc,EAAE,cAAc;YAC9B,iBAAiB,EAAE,iBAAiB;YACpC,wEAAwE;YACxE,4EAA4E;YAC5E,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,YAAY,EAAE,YAAY,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YACvD,aAAa,EAAE,aAAa;YAC5B,mBAAmB,EAAE,IAAI,0BAA0B,CAAC,EAAE,SAAS,EAAE,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,EAAE,CAAC;YAC5G,WAAW,EAAE,WAAW;YACxB,0DAA0D;YAC1D,kBAAkB,EAAE,EAAwB;YAC5C,sBAAsB,EAAE,EAA4B;SACtD;QACD,KAAK,EAAE,EAA8F;QACrG,YAAY,EAAE,EAAkB;QAChC,eAAe,EAAE,EAA4B;KAC/C,CAAC;IACF,MAAM,cAAc,GAAG,QAA0E,CAAC;IAElG,4EAA4E;IAC5E,wDAAwD;IACxD,QAAQ,CAAC,SAAS,CAAC,kBAAkB,GAAG,IAAI,yBAAyB,CAAC,cAAc,CAAC,CAAC;IACtF,QAAQ,CAAC,SAAS,CAAC,sBAAsB,GAAG,IAAI,6BAA6B,CAAC,cAAc,CAAC,CAAC;IAC9F,MAAM,eAAe,GAAG,QAA4E,CAAC;IACrG,MAAM,YAAY,GAAG,IAAI,mBAAmB,CAAC,cAAc,CAAC,CAAC;IAC7D,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;QAClB,YAAY,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IACD,eAAe,CAAC,YAAY,GAAG,YAAY,CAAC;IAC5C,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,cAAc,CAAC,IAAI,IAAI,sBAAsB,CAAC,cAAc,CAAC,CAAC;IAChH,eAAe,CAAC,eAAe,GAAG,eAAe,CAAC;IAElD,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,CAAC,CAAC,IAAY,EAAE,IAAe,EAAE,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IACjG,MAAM,eAAe,GAAG,OAAO,CAAC,eAAe;QAC5C,CAAC,CAAC,OAAO,CAAC,eAAe,CAAC,cAAc,CAAC;QACzC,CAAC,CAAC,IAAI,sBAAsB,CAA+B,cAAc,CAAC,CAAC;IAC9E,MAAM,YAAY,GAAG,OAAO,CAAC,YAAY;QACtC,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,cAAc,CAAC;QACtC,CAAC,CAAC,oBAAoB,CAA+B,cAAc,EAAE,SAAS,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEhH,MAAM,YAAY,GAAG,QAAQ,CAAC,KAI7B,CAAC;IACF,YAAY,CAAC,eAAe,GAAG,eAAe,CAAC;IAC/C,YAAY,CAAC,YAAY,GAAG,YAAY,CAAC;IACzC,YAAY,CAAC,oBAAoB,GAAG,IAAI,2BAA2B,CAAC,cAAc,EAAE,OAAO,CAAC,2BAA2B,CAAC,CAAC;IAEzH,OAAO;QACJ,QAAQ,EAAE,cAAc;QACxB,SAAS;QACT,aAAa;QACb,kBAAkB;QAClB,eAAe;QACf,UAAU;QACV,gBAAgB;QAChB,cAAc;QACd,iBAAiB;QACjB,WAAW;QACX,eAAe;QACf,YAAY;QACZ,YAAY;QACZ,eAAe;QACf,MAAM;QACN,KAAK;QACL,YAAY;QACZ,eAAe;QACf,OAAO,EAAE,GAAG,EAAE;YACX,qEAAqE;YACrE,sEAAsE;YACtE,gEAAgE;YAChE,mDAAmD;QACtD,CAAC;KACH,CAAC;AACL,CAAC"}
@@ -49,6 +49,18 @@ export interface CapturingLogger {
49
49
  * hand-rolling a capturing `{ info, warn, ... } as unknown as Logger` stub.
50
50
  */
51
51
  export declare function makeCapturingLogger(): CapturingLogger;
52
+ /** A captured line with the logger component it was emitted under. */
53
+ export interface AttributedLine extends CapturedLine {
54
+ readonly component: string | undefined;
55
+ }
56
+ /** A {@link Logger} whose emitted lines are captured with their component. */
57
+ export interface AttributingLogger {
58
+ readonly logger: Logger;
59
+ /** Every line emitted through the logger (and its derived children), in order. */
60
+ readonly lines: AttributedLine[];
61
+ }
62
+ /** A capturing logger that also records each line's component, which {@link makeCapturingLogger} drops. */
63
+ export declare function makeAttributingLogger(): AttributingLogger;
52
64
  /** A {@link Tracer} whose emitted lines are captured for assertions. */
53
65
  export interface CapturingTracer {
54
66
  readonly tracer: Tracer;
@@ -1 +1 @@
1
- {"version":3,"file":"make-test-tracer.d.ts","sourceRoot":"","sources":["../../src/testing/make-test-tracer.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAAE,KAAK,KAAK,EAAiB,KAAK,MAAM,EAAE,KAAK,QAAQ,EAA2B,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElI;;;;;;;GAOG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,yDAAyD;AACzD,MAAM,WAAW,YAAY;IAC1B,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC3B;AAED,wEAAwE;AACxE,MAAM,WAAW,eAAe;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,kFAAkF;IAClF,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC;CACjC;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,IAAI,eAAe,CAWrD;AAED,wEAAwE;AACxE,MAAM,WAAW,eAAe;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,kFAAkF;IAClF,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC;CACjC;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,GAAE,KAAyB,GAAG,eAAe,CAGrF"}
1
+ {"version":3,"file":"make-test-tracer.d.ts","sourceRoot":"","sources":["../../src/testing/make-test-tracer.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAAE,KAAK,KAAK,EAAiB,KAAK,MAAM,EAAE,KAAK,QAAQ,EAA2B,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAElI;;;;;;;GAOG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAEvC;AAED,yDAAyD;AACzD,MAAM,WAAW,YAAY;IAC1B,QAAQ,CAAC,KAAK,EAAE,QAAQ,CAAC;IACzB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;CAC3B;AAED,wEAAwE;AACxE,MAAM,WAAW,eAAe;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,kFAAkF;IAClF,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC;CACjC;AAED;;;;;;;;GAQG;AACH,wBAAgB,mBAAmB,IAAI,eAAe,CAWrD;AAED,sEAAsE;AACtE,MAAM,WAAW,cAAe,SAAQ,YAAY;IACjD,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;CACzC;AAED,8EAA8E;AAC9E,MAAM,WAAW,iBAAiB;IAC/B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,kFAAkF;IAClF,QAAQ,CAAC,KAAK,EAAE,cAAc,EAAE,CAAC;CACnC;AAED,2GAA2G;AAC3G,wBAAgB,qBAAqB,IAAI,iBAAiB,CAWzD;AAED,wEAAwE;AACxE,MAAM,WAAW,eAAe;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,kFAAkF;IAClF,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC;CACjC;AAED;;;;;;;GAOG;AACH,wBAAgB,mBAAmB,CAAC,KAAK,GAAE,KAAyB,GAAG,eAAe,CAGrF"}
@@ -53,6 +53,19 @@ export function makeCapturingLogger() {
53
53
  }
54
54
  return { logger: new Capturing(), lines };
55
55
  }
56
+ /** A capturing logger that also records each line's component, which {@link makeCapturingLogger} drops. */
57
+ export function makeAttributingLogger() {
58
+ const lines = [];
59
+ class Attributing extends NoopLogger {
60
+ emit(level, _label, message) {
61
+ lines.push({ level, message, component: this.component });
62
+ }
63
+ derive(component) {
64
+ return new Attributing(component);
65
+ }
66
+ }
67
+ return { logger: new Attributing(), lines };
68
+ }
56
69
  /**
57
70
  * Capturing {@link Tracer} for tests that assert on emitted output. Wraps a
58
71
  * {@link makeCapturingLogger} in a {@link DefaultTracer} so timing/profiling
@@ -1 +1 @@
1
- {"version":3,"file":"make-test-tracer.js","sourceRoot":"","sources":["../../src/testing/make-test-tracer.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAAc,aAAa,EAA8B,UAAU,EAAE,WAAW,EAAe,MAAM,qBAAqB,CAAC;AAElI;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc;IAC3B,OAAO,IAAI,aAAa,EAAE,CAAC;AAC9B,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,cAAc;IAC3B,OAAO,IAAI,UAAU,EAAE,CAAC;AAC3B,CAAC;AAeD;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB;IAChC,MAAM,KAAK,GAAmB,EAAE,CAAC;IACjC,MAAM,SAAU,SAAQ,UAAU;QACZ,IAAI,CAAC,KAAe,EAAE,MAAc,EAAE,OAAe;YACrE,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QAClC,CAAC;QACkB,MAAM,CAAC,SAAiB;YACxC,OAAO,IAAI,SAAS,CAAC,SAAS,CAAS,CAAC;QAC3C,CAAC;KACH;IACD,OAAO,EAAE,MAAM,EAAE,IAAI,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC;AAC7C,CAAC;AASD;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CAAC,QAAe,IAAI,WAAW,EAAE;IACjE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,mBAAmB,EAAE,CAAC;IAChD,OAAO,EAAE,MAAM,EAAE,IAAI,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC;AAC9D,CAAC"}
1
+ {"version":3,"file":"make-test-tracer.js","sourceRoot":"","sources":["../../src/testing/make-test-tracer.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAAc,aAAa,EAA8B,UAAU,EAAE,WAAW,EAAe,MAAM,qBAAqB,CAAC;AAElI;;;;;;;GAOG;AACH,MAAM,UAAU,cAAc;IAC3B,OAAO,IAAI,aAAa,EAAE,CAAC;AAC9B,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,UAAU,cAAc;IAC3B,OAAO,IAAI,UAAU,EAAE,CAAC;AAC3B,CAAC;AAeD;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB;IAChC,MAAM,KAAK,GAAmB,EAAE,CAAC;IACjC,MAAM,SAAU,SAAQ,UAAU;QACZ,IAAI,CAAC,KAAe,EAAE,MAAc,EAAE,OAAe;YACrE,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;QAClC,CAAC;QACkB,MAAM,CAAC,SAAiB;YACxC,OAAO,IAAI,SAAS,CAAC,SAAS,CAAS,CAAC;QAC3C,CAAC;KACH;IACD,OAAO,EAAE,MAAM,EAAE,IAAI,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC;AAC7C,CAAC;AAcD,2GAA2G;AAC3G,MAAM,UAAU,qBAAqB;IAClC,MAAM,KAAK,GAAqB,EAAE,CAAC;IACnC,MAAM,WAAY,SAAQ,UAAU;QACd,IAAI,CAAC,KAAe,EAAE,MAAc,EAAE,OAAe;YACrE,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;QAC7D,CAAC;QACkB,MAAM,CAAC,SAAiB;YACxC,OAAO,IAAI,WAAW,CAAC,SAAS,CAAS,CAAC;QAC7C,CAAC;KACH;IACD,OAAO,EAAE,MAAM,EAAE,IAAI,WAAW,EAAE,EAAE,KAAK,EAAE,CAAC;AAC/C,CAAC;AASD;;;;;;;GAOG;AACH,MAAM,UAAU,mBAAmB,CAAC,KAAK,GAAU,IAAI,WAAW,EAAE;IACjE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,mBAAmB,EAAE,CAAC;IAChD,OAAO,EAAE,MAAM,EAAE,IAAI,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC;AAC9D,CAAC"}
@@ -0,0 +1,29 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2026 CrossBreeze, 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 ApplyWorkspaceEditParams, type ApplyWorkspaceEditResult, type ProtocolConnection } from 'vscode-languageserver-protocol/node';
10
+ import type { AppliedEdit, NextAppliedEditOptions } from './lsp-server-connection.js';
11
+ /**
12
+ * The client side of `workspace/applyEdit` on one LSP connection, shared by the
13
+ * in-process and the spawned tiers so their capture and wait cannot drift.
14
+ */
15
+ export interface AppliedEditCapture {
16
+ readonly appliedEdits: ReadonlyArray<AppliedEdit>;
17
+ nextAppliedEdit(uri: string, timeoutMsOrOptions?: number | NextAppliedEditOptions): Promise<AppliedEdit>;
18
+ setApplyEditHandler(handler: (params: ApplyWorkspaceEditParams) => ApplyWorkspaceEditResult | Promise<ApplyWorkspaceEditResult>): void;
19
+ dispose(): void;
20
+ }
21
+ /**
22
+ * Answer and record every `workspace/applyEdit` arriving on `client`.
23
+ *
24
+ * Register before the connection can receive one: `vscode-jsonrpc` keeps a
25
+ * single handler per request type, so this must be the only `applyEdit`
26
+ * handler on `client`, and a second registration displaces the capture.
27
+ */
28
+ export declare function captureAppliedEdits(client: ProtocolConnection, defaultTimeoutMs: number): AppliedEditCapture;
29
+ //# sourceMappingURL=applied-edit-capture.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applied-edit-capture.d.ts","sourceRoot":"","sources":["../../../src/testing/node/applied-edit-capture.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAEJ,KAAK,wBAAwB,EAC7B,KAAK,wBAAwB,EAC7B,KAAK,kBAAkB,EAEzB,MAAM,qCAAqC,CAAC;AAC7C,OAAO,KAAK,EAAE,WAAW,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAEtF;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IAChC,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;IAClD,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,kBAAkB,CAAC,EAAE,MAAM,GAAG,sBAAsB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC;IACzG,mBAAmB,CAAC,OAAO,EAAE,CAAC,MAAM,EAAE,wBAAwB,KAAK,wBAAwB,GAAG,OAAO,CAAC,wBAAwB,CAAC,GAAG,IAAI,CAAC;IACvI,OAAO,IAAI,IAAI,CAAC;CAClB;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,MAAM,GAAG,kBAAkB,CAoE5G"}
@@ -0,0 +1,117 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2026 CrossBreeze, 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 { ApplyWorkspaceEditRequest } from 'vscode-languageserver-protocol/node';
10
+ /**
11
+ * Answer and record every `workspace/applyEdit` arriving on `client`.
12
+ *
13
+ * Register before the connection can receive one: `vscode-jsonrpc` keeps a
14
+ * single handler per request type, so this must be the only `applyEdit`
15
+ * handler on `client`, and a second registration displaces the capture.
16
+ */
17
+ export function captureAppliedEdits(client, defaultTimeoutMs) {
18
+ const appliedEdits = [];
19
+ const waiters = [];
20
+ let handler = () => ({
21
+ applied: true
22
+ });
23
+ const subscription = client.onRequest(ApplyWorkspaceEditRequest.type, (params) => {
24
+ const edit = { params, uris: editedUris(params.edit), text: insertedText(params.edit) };
25
+ // Record before the handler runs, so a handler that rejects the edit or
26
+ // throws still leaves the push observable — the send is what the egress
27
+ // assertion is about.
28
+ appliedEdits.push(edit);
29
+ for (const waiter of [...waiters]) {
30
+ if (waiter(edit)) {
31
+ const at = waiters.indexOf(waiter);
32
+ if (at >= 0) {
33
+ waiters.splice(at, 1);
34
+ }
35
+ }
36
+ }
37
+ return handler(params);
38
+ });
39
+ return {
40
+ appliedEdits,
41
+ nextAppliedEdit(uri, timeoutMsOrOptions) {
42
+ const options = typeof timeoutMsOrOptions === 'number' ? { timeoutMs: timeoutMsOrOptions } : (timeoutMsOrOptions ?? {});
43
+ const timeoutMs = options.timeoutMs ?? defaultTimeoutMs;
44
+ const { fromIndex, match } = options;
45
+ const matches = (edit) => edit.uris.includes(uri) && (match?.(edit) ?? true);
46
+ if (fromIndex !== undefined) {
47
+ // Replay from the capture first: the push may already have arrived,
48
+ // and a waiter only ever sees later ones.
49
+ const captured = appliedEdits.slice(Math.max(0, fromIndex)).find(matches);
50
+ if (captured) {
51
+ return Promise.resolve(captured);
52
+ }
53
+ }
54
+ return new Promise((resolve, reject) => {
55
+ const waiter = (edit) => {
56
+ if (!matches(edit)) {
57
+ return false;
58
+ }
59
+ clearTimeout(timer);
60
+ resolve(edit);
61
+ return true;
62
+ };
63
+ const timer = setTimeout(() => {
64
+ const at = waiters.indexOf(waiter);
65
+ if (at >= 0) {
66
+ waiters.splice(at, 1);
67
+ }
68
+ reject(new Error(`Timed out waiting for a workspace/applyEdit addressing ${uri}`));
69
+ }, timeoutMs);
70
+ waiters.push(waiter);
71
+ });
72
+ },
73
+ setApplyEditHandler(next) {
74
+ handler = next;
75
+ },
76
+ dispose() {
77
+ subscription.dispose();
78
+ }
79
+ };
80
+ }
81
+ /** Every URI a {@link WorkspaceEdit} addresses, in `documentChanges` then `changes` order. */
82
+ function editedUris(edit) {
83
+ const uris = [];
84
+ for (const change of edit.documentChanges ?? []) {
85
+ if ('textDocument' in change) {
86
+ uris.push(change.textDocument.uri);
87
+ }
88
+ else if ('oldUri' in change) {
89
+ uris.push(change.oldUri, change.newUri);
90
+ }
91
+ else {
92
+ uris.push(change.uri);
93
+ }
94
+ }
95
+ uris.push(...Object.keys(edit.changes ?? {}));
96
+ return uris;
97
+ }
98
+ /** Every text edit's `newText` in a {@link WorkspaceEdit}, concatenated in edit order. */
99
+ function insertedText(edit) {
100
+ const parts = [];
101
+ for (const change of edit.documentChanges ?? []) {
102
+ if ('edits' in change) {
103
+ for (const textEdit of change.edits) {
104
+ if ('newText' in textEdit) {
105
+ parts.push(textEdit.newText);
106
+ }
107
+ }
108
+ }
109
+ }
110
+ for (const textEdits of Object.values(edit.changes ?? {})) {
111
+ for (const textEdit of textEdits) {
112
+ parts.push(textEdit.newText);
113
+ }
114
+ }
115
+ return parts.join('');
116
+ }
117
+ //# sourceMappingURL=applied-edit-capture.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"applied-edit-capture.js","sourceRoot":"","sources":["../../../src/testing/node/applied-edit-capture.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"golden-corpus.js","sourceRoot":"","sources":["../../../src/testing/node/golden-corpus.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAgC3C;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAAiB,EAAE,UAAmC,EAAE;IACtF,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC;IAC3C,MAAM,QAAQ,GAAG,WAAW,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;SAC5D,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;SAC/B,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;SAC1E,GAAG,CAAC,KAAK,CAAC,EAAE;QACV,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACzC,OAAO;YACJ,IAAI,EAAE,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC;YAC5E,QAAQ,EAAE,KAAK,CAAC,IAAI;YACpB,IAAI;YACJ,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC;SAClC,CAAC;IACL,CAAC,CAAC;SACD,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1G,IAAI,QAAQ,CAAC,MAAM,GAAG,OAAO,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,cAAc,SAAS,GAAG,CAAC;QAC5F,MAAM,IAAI,KAAK,CACZ,oBAAoB,SAAS,YAAY,QAAQ,CAAC,MAAM,oBAAoB,MAAM,uBAAuB,OAAO,IAAI;YACjH,gHAAgH,CACrH,CAAC;IACL,CAAC;IACD,OAAO,QAAQ,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"golden-corpus.js","sourceRoot":"","sources":["../../../src/testing/node/golden-corpus.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AAEH,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AACpD,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAgC3C;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,gBAAgB,CAAC,SAAiB,EAAE,OAAO,GAA4B,EAAE;IACtF,MAAM,EAAE,SAAS,EAAE,OAAO,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC;IAC3C,MAAM,QAAQ,GAAG,WAAW,CAAC,SAAS,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;SAC5D,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;SAC/B,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,SAAS,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;SAC1E,GAAG,CAAC,KAAK,CAAC,EAAE;QACV,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;QACzC,OAAO;YACJ,IAAI,EAAE,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC;YAC5E,QAAQ,EAAE,KAAK,CAAC,IAAI;YACpB,IAAI;YACJ,IAAI,EAAE,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC;SAClC,CAAC;IACL,CAAC,CAAC;SACD,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1G,IAAI,QAAQ,CAAC,MAAM,GAAG,OAAO,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,cAAc,SAAS,GAAG,CAAC;QAC5F,MAAM,IAAI,KAAK,CACZ,oBAAoB,SAAS,YAAY,QAAQ,CAAC,MAAM,oBAAoB,MAAM,uBAAuB,OAAO,IAAI;YACjH,gHAAgH,CACrH,CAAC;IACL,CAAC;IACD,OAAO,QAAQ,CAAC;AACnB,CAAC"}
@@ -25,4 +25,5 @@ export * from './lsp-harness.js';
25
25
  export * from './lsp-server-connection.js';
26
26
  export * from './scratch-workspace.js';
27
27
  export * from './spawned-server.js';
28
+ export * from './unhandled-rejections.js';
28
29
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/testing/node/index.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF;;;;;;;;;;;;GAYG;AAEH,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/testing/node/index.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF;;;;;;;;;;;;GAYG;AAEH,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC"}
@@ -25,4 +25,5 @@ export * from './lsp-harness.js';
25
25
  export * from './lsp-server-connection.js';
26
26
  export * from './scratch-workspace.js';
27
27
  export * from './spawned-server.js';
28
+ export * from './unhandled-rejections.js';
28
29
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/testing/node/index.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF;;;;;;;;;;;;GAYG;AAEH,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/testing/node/index.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF;;;;;;;;;;;;GAYG;AAEH,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,kBAAkB,CAAC;AACjC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,wBAAwB,CAAC;AACvC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"lsp-harness.d.ts","sourceRoot":"","sources":["../../../src/testing/node/lsp-harness.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAG7D,OAAO,EAAkC,KAAK,oBAAoB,EAAE,MAAM,iDAAiD,CAAC;AAC5H,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AACpF,OAAO,EAA2B,KAAK,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAE/F;;;;;;;GAOG;AACH,MAAM,MAAM,wBAAwB,GAAG,2BAA2B,GAAG,qBAAqB,CAAC;AAE3F;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,MAAM,qBAAqB,GAAG,+BAA+B,GAAG,uBAAuB,CAAC;AAE9F,wEAAwE;AACxE,MAAM,WAAW,+BAA+B;IAC7C;;;;OAIG;IACH,cAAc,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,wBAAwB,CAAC;CACvE;AAED,0FAA0F;AAC1F,MAAM,WAAW,uBAAuB;IACrC;;;;OAIG;IACH,UAAU,EAAE,mBAAmB,CAAC;IAChC;;;;OAIG;IACH,QAAQ,EAAE,wBAAwB,CAAC;CACrC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,EAAE,kBAAkB,CAAC,GAAG;IACtE,+EAA+E;IAC/E,QAAQ,CAAC,QAAQ,EAAE,2BAA2B,CAAC;IAC/C;;;;;;;;;;;;;;;;;;;OAmBG;IACH,cAAc,CAAC,OAAO,EAAE,oBAAoB,GAAG,aAAa,CAAC,oBAAoB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACrG,CAAC;AA8BF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,UAAU,CAuDzE"}
1
+ {"version":3,"file":"lsp-harness.d.ts","sourceRoot":"","sources":["../../../src/testing/node/lsp-harness.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAG7D,OAAO,EAAkC,KAAK,oBAAoB,EAAE,MAAM,iDAAiD,CAAC;AAC5H,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,kCAAkC,CAAC;AACpF,OAAO,EAA2B,KAAK,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAE/F;;;;;;;GAOG;AACH,MAAM,MAAM,wBAAwB,GAAG,2BAA2B,GAAG,qBAAqB,CAAC;AAE3F;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,MAAM,qBAAqB,GAAG,+BAA+B,GAAG,uBAAuB,CAAC;AAE9F,wEAAwE;AACxE,MAAM,WAAW,+BAA+B;IAC7C;;;;OAIG;IACH,cAAc,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,wBAAwB,CAAC;CACvE;AAED,0FAA0F;AAC1F,MAAM,WAAW,uBAAuB;IACrC;;;;OAIG;IACH,UAAU,EAAE,mBAAmB,CAAC;IAChC;;;;OAIG;IACH,QAAQ,EAAE,wBAAwB,CAAC;CACrC;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,MAAM,UAAU,GAAG,IAAI,CAAC,mBAAmB,EAAE,kBAAkB,CAAC,GAAG;IACtE,+EAA+E;IAC/E,QAAQ,CAAC,QAAQ,EAAE,2BAA2B,CAAC;IAC/C;;;;;;;;;;;;;;;;;;;OAmBG;IACH,cAAc,CAAC,OAAO,EAAE,oBAAoB,GAAG,aAAa,CAAC,oBAAoB,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACrG,CAAC;AA8BF;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,UAAU,CAyDzE"}
@@ -104,12 +104,14 @@ export function makeLspHarness(options) {
104
104
  },
105
105
  shutdown: transport.shutdown,
106
106
  openDocument: transport.openDocument,
107
+ closeDocument: transport.closeDocument,
107
108
  changeDocument: transport.changeDocument,
108
109
  completion: transport.completion,
109
110
  hover: transport.hover,
110
111
  semanticTokens: transport.semanticTokens,
111
112
  nextDiagnostics: transport.nextDiagnostics,
112
113
  appliedEdits: transport.appliedEdits,
114
+ wireBytes: transport.wireBytes,
113
115
  nextAppliedEdit: transport.nextAppliedEdit,
114
116
  setApplyEditHandler: transport.setApplyEditHandler,
115
117
  buildWorkspace: folders => buildWorkspaceProgrammatically(services, folders),