@hydranium/core 1.0.0-next.10 → 1.0.0-next.104

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 (375) hide show
  1. package/lib/documents/ast-document-manager.d.ts +75 -16
  2. package/lib/documents/ast-document-manager.d.ts.map +1 -1
  3. package/lib/documents/ast-document-manager.js +57 -19
  4. package/lib/documents/ast-document-manager.js.map +1 -1
  5. package/lib/documents/client-ids.d.ts +5 -19
  6. package/lib/documents/client-ids.d.ts.map +1 -1
  7. package/lib/documents/client-ids.js +5 -19
  8. package/lib/documents/client-ids.js.map +1 -1
  9. package/lib/documents/hydranium-text-documents.d.ts +124 -36
  10. package/lib/documents/hydranium-text-documents.d.ts.map +1 -1
  11. package/lib/documents/hydranium-text-documents.js +191 -51
  12. package/lib/documents/hydranium-text-documents.js.map +1 -1
  13. package/lib/documents/language-client-text-shadow.d.ts +41 -9
  14. package/lib/documents/language-client-text-shadow.d.ts.map +1 -1
  15. package/lib/documents/language-client-text-shadow.js +56 -11
  16. package/lib/documents/language-client-text-shadow.js.map +1 -1
  17. package/lib/documents/self-save-registry.d.ts +37 -6
  18. package/lib/documents/self-save-registry.d.ts.map +1 -1
  19. package/lib/documents/self-save-registry.js +28 -15
  20. package/lib/documents/self-save-registry.js.map +1 -1
  21. package/lib/index.d.ts +3 -0
  22. package/lib/index.d.ts.map +1 -1
  23. package/lib/index.js +6 -0
  24. package/lib/index.js.map +1 -1
  25. package/lib/langium/ast-extension/ast-node-builder.d.ts +32 -9
  26. package/lib/langium/ast-extension/ast-node-builder.d.ts.map +1 -1
  27. package/lib/langium/ast-extension/ast-node-builder.js +60 -22
  28. package/lib/langium/ast-extension/ast-node-builder.js.map +1 -1
  29. package/lib/langium/bootstrap.d.ts.map +1 -1
  30. package/lib/langium/bootstrap.js +16 -9
  31. package/lib/langium/bootstrap.js.map +1 -1
  32. package/lib/langium/config/configuration-provider.d.ts +81 -0
  33. package/lib/langium/config/configuration-provider.d.ts.map +1 -0
  34. package/lib/langium/config/configuration-provider.js +112 -0
  35. package/lib/langium/config/configuration-provider.js.map +1 -0
  36. package/lib/langium/config/index.d.ts +1 -0
  37. package/lib/langium/config/index.d.ts.map +1 -1
  38. package/lib/langium/config/index.js +1 -0
  39. package/lib/langium/config/index.js.map +1 -1
  40. package/lib/langium/diagnostics/lsp-logger.d.ts +17 -0
  41. package/lib/langium/diagnostics/lsp-logger.d.ts.map +1 -1
  42. package/lib/langium/diagnostics/lsp-logger.js +40 -6
  43. package/lib/langium/diagnostics/lsp-logger.js.map +1 -1
  44. package/lib/langium/document-builder/build-pipeline-integration.d.ts +21 -1
  45. package/lib/langium/document-builder/build-pipeline-integration.d.ts.map +1 -1
  46. package/lib/langium/document-builder/build-pipeline-integration.js +32 -5
  47. package/lib/langium/document-builder/build-pipeline-integration.js.map +1 -1
  48. package/lib/langium/document-builder/build-session.d.ts +93 -0
  49. package/lib/langium/document-builder/build-session.d.ts.map +1 -0
  50. package/lib/langium/document-builder/build-session.js +72 -0
  51. package/lib/langium/document-builder/build-session.js.map +1 -0
  52. package/lib/langium/document-builder/document-builder.d.ts +150 -7
  53. package/lib/langium/document-builder/document-builder.d.ts.map +1 -1
  54. package/lib/langium/document-builder/document-builder.js +298 -11
  55. package/lib/langium/document-builder/document-builder.js.map +1 -1
  56. package/lib/langium/document-builder/index.d.ts +1 -0
  57. package/lib/langium/document-builder/index.d.ts.map +1 -1
  58. package/lib/langium/document-builder/index.js +1 -0
  59. package/lib/langium/document-builder/index.js.map +1 -1
  60. package/lib/langium/integration-services.d.ts +45 -1
  61. package/lib/langium/integration-services.d.ts.map +1 -1
  62. package/lib/langium/integration-services.js +10 -5
  63. package/lib/langium/integration-services.js.map +1 -1
  64. package/lib/langium/integrity/integrity-service.d.ts +16 -0
  65. package/lib/langium/integrity/integrity-service.d.ts.map +1 -1
  66. package/lib/langium/integrity/integrity-service.js +110 -2
  67. package/lib/langium/integrity/integrity-service.js.map +1 -1
  68. package/lib/langium/keys/containment.d.ts +64 -0
  69. package/lib/langium/keys/containment.d.ts.map +1 -0
  70. package/lib/langium/keys/containment.js +53 -0
  71. package/lib/langium/keys/containment.js.map +1 -0
  72. package/lib/langium/keys/index.d.ts +1 -0
  73. package/lib/langium/keys/index.d.ts.map +1 -1
  74. package/lib/langium/keys/index.js +1 -0
  75. package/lib/langium/keys/index.js.map +1 -1
  76. package/lib/langium/keys/name-based-key-provider.d.ts +4 -0
  77. package/lib/langium/keys/name-based-key-provider.d.ts.map +1 -1
  78. package/lib/langium/keys/name-based-key-provider.js +4 -0
  79. package/lib/langium/keys/name-based-key-provider.js.map +1 -1
  80. package/lib/langium/language-module.d.ts +25 -0
  81. package/lib/langium/language-module.d.ts.map +1 -1
  82. package/lib/langium/language-module.js +14 -0
  83. package/lib/langium/language-module.js.map +1 -1
  84. package/lib/langium/model-service/model-service.d.ts +161 -10
  85. package/lib/langium/model-service/model-service.d.ts.map +1 -1
  86. package/lib/langium/model-service/model-service.js +174 -95
  87. package/lib/langium/model-service/model-service.js.map +1 -1
  88. package/lib/langium/module.d.ts +84 -15
  89. package/lib/langium/module.d.ts.map +1 -1
  90. package/lib/langium/module.js +26 -12
  91. package/lib/langium/module.js.map +1 -1
  92. package/lib/langium/naming/name-provider.d.ts +25 -4
  93. package/lib/langium/naming/name-provider.d.ts.map +1 -1
  94. package/lib/langium/naming/name-provider.js +2 -1
  95. package/lib/langium/naming/name-provider.js.map +1 -1
  96. package/lib/langium/naming/name-separator-validation.d.ts +23 -0
  97. package/lib/langium/naming/name-separator-validation.d.ts.map +1 -1
  98. package/lib/langium/naming/name-separator-validation.js +30 -1
  99. package/lib/langium/naming/name-separator-validation.js.map +1 -1
  100. package/lib/langium/residency/cst-residency-service.d.ts +31 -11
  101. package/lib/langium/residency/cst-residency-service.d.ts.map +1 -1
  102. package/lib/langium/residency/cst-residency-service.js +13 -56
  103. package/lib/langium/residency/cst-residency-service.js.map +1 -1
  104. package/lib/langium/scope/hydranium-scope-provider.d.ts +48 -13
  105. package/lib/langium/scope/hydranium-scope-provider.d.ts.map +1 -1
  106. package/lib/langium/scope/hydranium-scope-provider.js +56 -20
  107. package/lib/langium/scope/hydranium-scope-provider.js.map +1 -1
  108. package/lib/langium/serialization/abstract-serializer.d.ts +11 -20
  109. package/lib/langium/serialization/abstract-serializer.d.ts.map +1 -1
  110. package/lib/langium/serialization/abstract-serializer.js +12 -21
  111. package/lib/langium/serialization/abstract-serializer.js.map +1 -1
  112. package/lib/langium/service-registry.d.ts +15 -1
  113. package/lib/langium/service-registry.d.ts.map +1 -1
  114. package/lib/langium/service-registry.js +16 -0
  115. package/lib/langium/service-registry.js.map +1 -1
  116. package/lib/langium/shared-services.d.ts +15 -2
  117. package/lib/langium/shared-services.d.ts.map +1 -1
  118. package/lib/langium/shared-services.js.map +1 -1
  119. package/lib/langium/transfer/transfer-encoder.d.ts +60 -17
  120. package/lib/langium/transfer/transfer-encoder.d.ts.map +1 -1
  121. package/lib/langium/transfer/transfer-encoder.js +38 -16
  122. package/lib/langium/transfer/transfer-encoder.js.map +1 -1
  123. package/lib/langium/trivia/comment-preserver.d.ts +423 -0
  124. package/lib/langium/trivia/comment-preserver.d.ts.map +1 -0
  125. package/lib/langium/trivia/comment-preserver.js +906 -0
  126. package/lib/langium/trivia/comment-preserver.js.map +1 -0
  127. package/lib/langium/trivia/document-ending-preserver.d.ts +43 -0
  128. package/lib/langium/trivia/document-ending-preserver.d.ts.map +1 -0
  129. package/lib/langium/trivia/document-ending-preserver.js +48 -0
  130. package/lib/langium/trivia/document-ending-preserver.js.map +1 -0
  131. package/lib/langium/trivia/index.d.ts +14 -0
  132. package/lib/langium/trivia/index.d.ts.map +1 -0
  133. package/lib/langium/trivia/index.js +14 -0
  134. package/lib/langium/trivia/index.js.map +1 -0
  135. package/lib/langium/trivia/trivia-contribution.d.ts +37 -0
  136. package/lib/langium/trivia/trivia-contribution.d.ts.map +1 -0
  137. package/lib/langium/trivia/trivia-contribution.js +10 -0
  138. package/lib/langium/trivia/trivia-contribution.js.map +1 -0
  139. package/lib/langium/trivia/trivia-preserver.d.ts +50 -0
  140. package/lib/langium/trivia/trivia-preserver.d.ts.map +1 -0
  141. package/lib/langium/trivia/trivia-preserver.js +10 -0
  142. package/lib/langium/trivia/trivia-preserver.js.map +1 -0
  143. package/lib/langium/trivia/trivia-service.d.ts +70 -0
  144. package/lib/langium/trivia/trivia-service.d.ts.map +1 -0
  145. package/lib/langium/trivia/trivia-service.js +56 -0
  146. package/lib/langium/trivia/trivia-service.js.map +1 -0
  147. package/lib/langium/validation/document-validator.d.ts +294 -10
  148. package/lib/langium/validation/document-validator.d.ts.map +1 -1
  149. package/lib/langium/validation/document-validator.js +448 -5
  150. package/lib/langium/validation/document-validator.js.map +1 -1
  151. package/lib/langium/workspace/document-uri-policy.d.ts +3 -4
  152. package/lib/langium/workspace/document-uri-policy.d.ts.map +1 -1
  153. package/lib/langium/workspace/document-uri-policy.js +3 -4
  154. package/lib/langium/workspace/document-uri-policy.js.map +1 -1
  155. package/lib/langium/workspace/file-system-provider.d.ts +9 -1
  156. package/lib/langium/workspace/file-system-provider.d.ts.map +1 -1
  157. package/lib/langium/workspace/file-system-provider.js +40 -7
  158. package/lib/langium/workspace/file-system-provider.js.map +1 -1
  159. package/lib/langium/workspace/hydranium-langium-document-factory.d.ts +25 -0
  160. package/lib/langium/workspace/hydranium-langium-document-factory.d.ts.map +1 -1
  161. package/lib/langium/workspace/hydranium-langium-document-factory.js +25 -0
  162. package/lib/langium/workspace/hydranium-langium-document-factory.js.map +1 -1
  163. package/lib/langium/workspace/hydranium-workspace-manager.d.ts +21 -1
  164. package/lib/langium/workspace/hydranium-workspace-manager.d.ts.map +1 -1
  165. package/lib/langium/workspace/hydranium-workspace-manager.js +28 -0
  166. package/lib/langium/workspace/hydranium-workspace-manager.js.map +1 -1
  167. package/lib/langium/workspace/in-memory-file-system-provider.d.ts +23 -0
  168. package/lib/langium/workspace/in-memory-file-system-provider.d.ts.map +1 -1
  169. package/lib/langium/workspace/in-memory-file-system-provider.js +47 -9
  170. package/lib/langium/workspace/in-memory-file-system-provider.js.map +1 -1
  171. package/lib/langium/workspace/initialize-workspace.d.ts +22 -2
  172. package/lib/langium/workspace/initialize-workspace.d.ts.map +1 -1
  173. package/lib/langium/workspace/initialize-workspace.js +13 -5
  174. package/lib/langium/workspace/initialize-workspace.js.map +1 -1
  175. package/lib/langium/workspace/langium-documents.d.ts +79 -17
  176. package/lib/langium/workspace/langium-documents.d.ts.map +1 -1
  177. package/lib/langium/workspace/langium-documents.js +83 -28
  178. package/lib/langium/workspace/langium-documents.js.map +1 -1
  179. package/lib/langium/workspace/virtual-document.d.ts +18 -3
  180. package/lib/langium/workspace/virtual-document.d.ts.map +1 -1
  181. package/lib/langium/workspace/virtual-document.js +19 -2
  182. package/lib/langium/workspace/virtual-document.js.map +1 -1
  183. package/lib/locale/index.d.ts +10 -0
  184. package/lib/locale/index.d.ts.map +1 -0
  185. package/lib/locale/index.js +10 -0
  186. package/lib/locale/index.js.map +1 -0
  187. package/lib/locale/server-locale.d.ts +73 -0
  188. package/lib/locale/server-locale.d.ts.map +1 -0
  189. package/lib/locale/server-locale.js +61 -0
  190. package/lib/locale/server-locale.js.map +1 -0
  191. package/lib/lsp/hydranium-document-update-handler.js +1 -1
  192. package/lib/lsp/hydranium-document-update-handler.js.map +1 -1
  193. package/lib/lsp/index.d.ts +1 -1
  194. package/lib/lsp/index.d.ts.map +1 -1
  195. package/lib/lsp/index.js +1 -1
  196. package/lib/lsp/index.js.map +1 -1
  197. package/lib/lsp/lsp-latency.d.ts +39 -0
  198. package/lib/lsp/lsp-latency.d.ts.map +1 -0
  199. package/lib/lsp/lsp-latency.js +58 -0
  200. package/lib/lsp/lsp-latency.js.map +1 -0
  201. package/lib/lsp/semantic-token-provider.d.ts +34 -1
  202. package/lib/lsp/semantic-token-provider.d.ts.map +1 -1
  203. package/lib/lsp/semantic-token-provider.js +55 -8
  204. package/lib/lsp/semantic-token-provider.js.map +1 -1
  205. package/lib/messages/carriers.d.ts +54 -0
  206. package/lib/messages/carriers.d.ts.map +1 -0
  207. package/lib/messages/carriers.js +62 -0
  208. package/lib/messages/carriers.js.map +1 -0
  209. package/lib/messages/index.d.ts +25 -0
  210. package/lib/messages/index.d.ts.map +1 -0
  211. package/lib/messages/index.js +25 -0
  212. package/lib/messages/index.js.map +1 -0
  213. package/lib/messages/renderer.d.ts +136 -0
  214. package/lib/messages/renderer.d.ts.map +1 -0
  215. package/lib/messages/renderer.js +159 -0
  216. package/lib/messages/renderer.js.map +1 -0
  217. package/lib/node/heap-ceiling.d.ts +61 -0
  218. package/lib/node/heap-ceiling.d.ts.map +1 -0
  219. package/lib/node/heap-ceiling.js +72 -0
  220. package/lib/node/heap-ceiling.js.map +1 -0
  221. package/lib/node/index.d.ts +1 -0
  222. package/lib/node/index.d.ts.map +1 -1
  223. package/lib/node/index.js +1 -0
  224. package/lib/node/index.js.map +1 -1
  225. package/lib/node/latency-from-env.d.ts +1 -1
  226. package/lib/node/latency-from-env.js +1 -1
  227. package/lib/node/node-file-system-provider.d.ts +35 -1
  228. package/lib/node/node-file-system-provider.d.ts.map +1 -1
  229. package/lib/node/node-file-system-provider.js +140 -45
  230. package/lib/node/node-file-system-provider.js.map +1 -1
  231. package/lib/node/profile-capture.d.ts +8 -2
  232. package/lib/node/profile-capture.d.ts.map +1 -1
  233. package/lib/node/profile-capture.js.map +1 -1
  234. package/lib/node/profiling-run.d.ts +2 -2
  235. package/lib/node/profiling-run.js +1 -1
  236. package/lib/node/profiling-run.js.map +1 -1
  237. package/lib/node/rename-over-open-readers.d.ts +52 -0
  238. package/lib/node/rename-over-open-readers.d.ts.map +1 -0
  239. package/lib/node/rename-over-open-readers.js +66 -0
  240. package/lib/node/rename-over-open-readers.js.map +1 -0
  241. package/lib/node/socket-launcher.d.ts +15 -0
  242. package/lib/node/socket-launcher.d.ts.map +1 -1
  243. package/lib/node/socket-launcher.js +3 -2
  244. package/lib/node/socket-launcher.js.map +1 -1
  245. package/lib/testing/fake-document.d.ts +16 -4
  246. package/lib/testing/fake-document.d.ts.map +1 -1
  247. package/lib/testing/fake-document.js +18 -3
  248. package/lib/testing/fake-document.js.map +1 -1
  249. package/lib/testing/make-noop-shared-services.d.ts +14 -0
  250. package/lib/testing/make-noop-shared-services.d.ts.map +1 -1
  251. package/lib/testing/make-noop-shared-services.js +28 -2
  252. package/lib/testing/make-noop-shared-services.js.map +1 -1
  253. package/lib/testing/make-test-services.d.ts +44 -8
  254. package/lib/testing/make-test-services.d.ts.map +1 -1
  255. package/lib/testing/make-test-services.js +19 -3
  256. package/lib/testing/make-test-services.js.map +1 -1
  257. package/lib/testing/node/scratch-workspace.d.ts.map +1 -1
  258. package/lib/testing/node/scratch-workspace.js +9 -4
  259. package/lib/testing/node/scratch-workspace.js.map +1 -1
  260. package/lib/testing/node/spawned-server.d.ts +14 -0
  261. package/lib/testing/node/spawned-server.d.ts.map +1 -1
  262. package/lib/testing/node/spawned-server.js +33 -1
  263. package/lib/testing/node/spawned-server.js.map +1 -1
  264. package/lib/testing/playwright/flaky-network-proxy.d.ts +76 -0
  265. package/lib/testing/playwright/flaky-network-proxy.d.ts.map +1 -0
  266. package/lib/testing/playwright/flaky-network-proxy.js +164 -0
  267. package/lib/testing/playwright/flaky-network-proxy.js.map +1 -0
  268. package/lib/testing/playwright/index.d.ts +1 -0
  269. package/lib/testing/playwright/index.d.ts.map +1 -1
  270. package/lib/testing/playwright/index.js +1 -0
  271. package/lib/testing/playwright/index.js.map +1 -1
  272. package/lib/testing/playwright/server-log-capture.d.ts +14 -4
  273. package/lib/testing/playwright/server-log-capture.d.ts.map +1 -1
  274. package/lib/testing/playwright/server-log-capture.js +21 -4
  275. package/lib/testing/playwright/server-log-capture.js.map +1 -1
  276. package/lib/testing/playwright/server-log-rename-reporter.d.ts.map +1 -1
  277. package/lib/testing/playwright/server-log-rename-reporter.js +10 -1
  278. package/lib/testing/playwright/server-log-rename-reporter.js.map +1 -1
  279. package/lib/testing/stub-ast-document-manager.d.ts +5 -5
  280. package/lib/testing/stub-ast-document-manager.d.ts.map +1 -1
  281. package/lib/testing/stub-ast-document-manager.js +4 -6
  282. package/lib/testing/stub-ast-document-manager.js.map +1 -1
  283. package/lib/testing/stub-document-builder.d.ts +8 -0
  284. package/lib/testing/stub-document-builder.d.ts.map +1 -1
  285. package/lib/testing/stub-document-builder.js +22 -3
  286. package/lib/testing/stub-document-builder.js.map +1 -1
  287. package/lib/testing/stub-langium-documents.d.ts +3 -2
  288. package/lib/testing/stub-langium-documents.d.ts.map +1 -1
  289. package/lib/testing/stub-langium-documents.js.map +1 -1
  290. package/lib/testing/stub-model-service.d.ts +5 -4
  291. package/lib/testing/stub-model-service.d.ts.map +1 -1
  292. package/lib/testing/stub-model-service.js +2 -2
  293. package/lib/testing/stub-model-service.js.map +1 -1
  294. package/package.json +17 -8
  295. package/src/documents/ast-document-manager.ts +129 -36
  296. package/src/documents/client-ids.ts +5 -22
  297. package/src/documents/hydranium-text-documents.ts +248 -75
  298. package/src/documents/language-client-text-shadow.ts +59 -11
  299. package/src/documents/self-save-registry.ts +52 -13
  300. package/src/index.ts +6 -0
  301. package/src/langium/ast-extension/ast-node-builder.ts +66 -22
  302. package/src/langium/bootstrap.ts +16 -9
  303. package/src/langium/config/configuration-provider.ts +119 -0
  304. package/src/langium/config/index.ts +1 -0
  305. package/src/langium/diagnostics/lsp-logger.ts +41 -6
  306. package/src/langium/document-builder/build-pipeline-integration.ts +50 -5
  307. package/src/langium/document-builder/build-session.ts +87 -0
  308. package/src/langium/document-builder/document-builder.ts +339 -11
  309. package/src/langium/document-builder/index.ts +1 -0
  310. package/src/langium/integration-services.ts +67 -6
  311. package/src/langium/integrity/integrity-service.ts +116 -2
  312. package/src/langium/keys/containment.ts +87 -0
  313. package/src/langium/keys/index.ts +1 -0
  314. package/src/langium/keys/name-based-key-provider.ts +4 -0
  315. package/src/langium/language-module.ts +38 -0
  316. package/src/langium/model-service/model-service.ts +264 -32
  317. package/src/langium/module.ts +106 -21
  318. package/src/langium/naming/name-provider.ts +27 -5
  319. package/src/langium/naming/name-separator-validation.ts +34 -5
  320. package/src/langium/residency/cst-residency-service.ts +36 -14
  321. package/src/langium/scope/hydranium-scope-provider.ts +60 -22
  322. package/src/langium/serialization/abstract-serializer.ts +13 -32
  323. package/src/langium/service-registry.ts +19 -2
  324. package/src/langium/shared-services.ts +19 -2
  325. package/src/langium/transfer/transfer-encoder.ts +85 -24
  326. package/src/langium/trivia/comment-preserver.ts +1100 -0
  327. package/src/langium/trivia/document-ending-preserver.ts +55 -0
  328. package/src/langium/trivia/index.ts +14 -0
  329. package/src/langium/trivia/trivia-contribution.ts +39 -0
  330. package/src/langium/trivia/trivia-preserver.ts +54 -0
  331. package/src/langium/trivia/trivia-service.ts +99 -0
  332. package/src/langium/validation/document-validator.ts +537 -11
  333. package/src/langium/workspace/document-uri-policy.ts +3 -4
  334. package/src/langium/workspace/file-system-provider.ts +48 -8
  335. package/src/langium/workspace/hydranium-langium-document-factory.ts +34 -0
  336. package/src/langium/workspace/hydranium-workspace-manager.ts +30 -1
  337. package/src/langium/workspace/in-memory-file-system-provider.ts +53 -10
  338. package/src/langium/workspace/initialize-workspace.ts +34 -5
  339. package/src/langium/workspace/langium-documents.ts +106 -33
  340. package/src/langium/workspace/virtual-document.ts +21 -3
  341. package/src/locale/index.ts +10 -0
  342. package/src/locale/server-locale.ts +86 -0
  343. package/src/lsp/hydranium-document-update-handler.ts +1 -1
  344. package/src/lsp/index.ts +1 -1
  345. package/src/lsp/lsp-latency.ts +62 -0
  346. package/src/lsp/semantic-token-provider.ts +74 -7
  347. package/src/messages/carriers.ts +78 -0
  348. package/src/messages/index.ts +36 -0
  349. package/src/messages/renderer.ts +204 -0
  350. package/src/node/heap-ceiling.ts +108 -0
  351. package/src/node/index.ts +1 -0
  352. package/src/node/latency-from-env.ts +1 -1
  353. package/src/node/node-file-system-provider.ts +154 -47
  354. package/src/node/profile-capture.ts +8 -2
  355. package/src/node/profiling-run.ts +3 -3
  356. package/src/node/rename-over-open-readers.ts +78 -0
  357. package/src/node/socket-launcher.ts +18 -2
  358. package/src/testing/fake-document.ts +24 -5
  359. package/src/testing/make-noop-shared-services.ts +50 -2
  360. package/src/testing/make-test-services.ts +73 -18
  361. package/src/testing/node/scratch-workspace.ts +9 -4
  362. package/src/testing/node/spawned-server.ts +35 -1
  363. package/src/testing/playwright/flaky-network-proxy.ts +240 -0
  364. package/src/testing/playwright/index.ts +1 -0
  365. package/src/testing/playwright/server-log-capture.ts +24 -5
  366. package/src/testing/playwright/server-log-rename-reporter.ts +12 -1
  367. package/src/testing/stub-ast-document-manager.ts +10 -14
  368. package/src/testing/stub-document-builder.ts +32 -3
  369. package/src/testing/stub-langium-documents.ts +3 -2
  370. package/src/testing/stub-model-service.ts +7 -6
  371. package/lib/lsp/instrument-connection.d.ts +0 -36
  372. package/lib/lsp/instrument-connection.d.ts.map +0 -1
  373. package/lib/lsp/instrument-connection.js +0 -62
  374. package/lib/lsp/instrument-connection.js.map +0 -1
  375. package/src/lsp/instrument-connection.ts +0 -66
@@ -42,8 +42,13 @@ export interface HydraniumTextDocumentsOptions<T extends TextDocument = TextDocu
42
42
  * separately-tested diff/apply-verify abstraction that owns its own baseline
43
43
  * text; folding its storage here would couple a clean utility to this record
44
44
  * for no real gain.
45
+ *
46
+ * Returned by the `protected` {@link HydraniumTextDocuments.trackingFor}, so an
47
+ * override has to name it. Restating the shape structurally instead compiles
48
+ * until a field is added here, and then fails at the adopter rather than at the
49
+ * change that caused it.
45
50
  */
46
- interface DocumentTracking {
51
+ export interface DocumentTrackingRecord {
47
52
  /** Client ids currently holding this document open (multi-client membership). */
48
53
  readonly clients: Set<string>;
49
54
  /** Author of each version, sparse-indexed by the SHARED (server-assigned) version number. */
@@ -79,13 +84,33 @@ export interface OpenDocument {
79
84
  /** Client ids currently holding the document open (never empty). */
80
85
  readonly clients: readonly string[];
81
86
  }
87
+ /**
88
+ * What {@link HydraniumTextDocuments.commitRepair} did with an integrity repair.
89
+ *
90
+ * Three outcomes rather than a document-or-nothing, because the two ways of
91
+ * getting nothing call for opposite responses: `not-open` means there is no
92
+ * store document to correct and the caller carries on with the one it holds,
93
+ * while `stale` means there IS one and it has moved past the text the repair
94
+ * was computed against — so carrying on would persist a correction over an edit
95
+ * that superseded it. Collapsing them lets the second read as permission to
96
+ * proceed, which is the failure this shape exists to make unrepresentable.
97
+ */
98
+ export type RepairCommit<T extends TextDocument> = {
99
+ readonly status: 'committed';
100
+ readonly document: T;
101
+ } | {
102
+ readonly status: 'stale';
103
+ } | {
104
+ readonly status: 'not-open';
105
+ };
82
106
  /**
83
107
  * Where a URI's shared version sequence left off — written once at last-client
84
108
  * close, consulted at the next open so the sequence CONTINUES instead of
85
109
  * restarting at whatever version id the reopening client declares. One entry
86
- * of {@link HydraniumTextDocuments.__versionSequences}.
110
+ * of {@link HydraniumTextDocuments.__versionSequences} — a `protected` field, so
111
+ * a subclass reading the map has to name what it holds.
87
112
  */
88
- interface VersionSequence {
113
+ export interface VersionSequence {
89
114
  /** The shared version at last-client close. */
90
115
  readonly version: number;
91
116
  /** {@link contentHash} of the synced text at last-client close. */
@@ -94,19 +119,20 @@ interface VersionSequence {
94
119
  /**
95
120
  * One text pushed to the LSP textual language client by
96
121
  * {@link HydraniumTextDocuments.applyEditToLanguageClient} whose echo has not
97
- * come back yet. One entry of {@link HydraniumTextDocuments.__pendingPushes}.
122
+ * come back yet. One entry of {@link HydraniumTextDocuments.__pendingPushes} —
123
+ * a `protected` field, so a subclass reading the queue has to name what it holds.
98
124
  */
99
- interface PendingPush {
125
+ export interface PendingLanguageClientPush {
100
126
  /**
101
- * The text the client held BEFORE this push — the shadow baseline the
102
- * push's edits were diffed against, and therefore the text the client's
103
- * echo addresses with its ranges.
127
+ * The text the client held BEFORE this push, and therefore the text its
128
+ * echo addresses with its ranges. Wider than the baseline the push's edits
129
+ * were diffed against: a full replace is sent with no diff baseline and
130
+ * still lands on a buffer the echo is keyed to.
104
131
  *
105
- * `undefined` when the push was a full replace sent with no baseline (a
106
- * first sync, or the recovery push after a rejection). There is then no
107
- * knowing what the client held, so the echo is reconstructed against the
108
- * synced text instead — which is sound for a full replace, whose
109
- * application is position-independent.
132
+ * `undefined` only when that buffer is unknown — the client never declared
133
+ * one, or a rejection invalidated what was tracked. The echo is then
134
+ * reconstructed against the synced text, which is sound only for a
135
+ * position-independent (full-text) change.
110
136
  */
111
137
  readonly before: string | undefined;
112
138
  /** {@link contentHash} of the text this push moves the client to. */
@@ -114,22 +140,32 @@ interface PendingPush {
114
140
  }
115
141
  /**
116
142
  * What an incoming language-client change turns out to be once reconstructed
117
- * against the pushes still in flight — the return of
118
- * {@link HydraniumTextDocuments.classifyLanguageClientChange}.
143
+ * against the buffer its ranges address — the return of
144
+ * {@link HydraniumTextDocuments.classifyLanguageClientChange}. That method is
145
+ * `protected`, so an override has to name every arm it can return.
119
146
  */
120
- type LanguageClientChangeOrigin =
147
+ export type LanguageClientChangeOrigin =
121
148
  /** The client is reporting a text we pushed it. The synced document is already there. */
122
149
  {
123
150
  readonly kind: 'echo';
124
151
  }
125
152
  /**
126
- * The client's buffer has moved somewhere we did not push it — it coalesced
127
- * a genuine keystroke into the echo, or typed before the push arrived. The
128
- * reconstructed text is what it now holds, and is authoritative.
153
+ * The client's buffer holds a text we did not push it — a keystroke that
154
+ * raced a push, or an edit to a buffer the store has already been written
155
+ * past. The reconstructed text is what it now holds, and is authoritative.
129
156
  */
130
157
  | {
131
158
  readonly kind: 'divergent';
132
159
  readonly text: string;
160
+ }
161
+ /**
162
+ * The change carries ranges and no known text addresses them, so no
163
+ * reconstruction is offered. Adopting one anyway splices the document and
164
+ * stores an edit nobody made; dropping costs at most the one keystroke the
165
+ * client still holds and the next push contradicts.
166
+ */
167
+ | {
168
+ readonly kind: 'unreconstructable';
133
169
  };
134
170
  /**
135
171
  * Multi-client text-document tracking on top of Langium's `NormalizedTextDocuments`.
@@ -142,7 +178,7 @@ type LanguageClientChangeOrigin =
142
178
  * per-client staleness guard and never leak into the shared sequence —
143
179
  * the two are different things (an editor's edit-operation counter vs the
144
180
  * document's content-revision number), and splicing them lets versions drift
145
- * silently past `baseVersion` gate holders.
181
+ * silently past based-on gate holders.
146
182
  * - Version-author history so each edit is attributable to its originating client.
147
183
  * - Pending-content staging used by the integrity service to thread corrections
148
184
  * through `workspace/applyEdit` cycles for currently-closed documents.
@@ -154,22 +190,22 @@ type LanguageClientChangeOrigin =
154
190
  export declare class HydraniumTextDocuments<T extends TextDocument = TextDocument> extends NormalizedTextDocuments<T> {
155
191
  protected services: ServerSharedServices;
156
192
  /**
157
- * Per-URI client-facing tracking ({@link DocumentTracking}): client
193
+ * Per-URI client-facing tracking ({@link DocumentTrackingRecord}): client
158
194
  * membership, version-author history, and integrity-staged pending content,
159
195
  * keyed by normalized URI. One record per URI so the last-client close clears
160
196
  * every axis atomically. The language-client diff baseline stays in
161
197
  * {@link __shadow} (its own abstraction); the parsed-document store stays in
162
198
  * the inherited `__syncedDocuments`.
163
199
  */
164
- protected __documents: Map<CanonicalUri, DocumentTracking>;
200
+ protected __documents: Map<CanonicalUri, DocumentTrackingRecord>;
165
201
  /**
166
202
  * Per-URI shared-version continuity across close/reopen cycles
167
203
  * ({@link VersionSequence}), written at last-client close and consulted by
168
- * the next first-client open. DELIBERATELY outside {@link DocumentTracking}:
204
+ * the next first-client open. DELIBERATELY outside {@link DocumentTrackingRecord}:
169
205
  * that record is deleted on last close, while the version sequence must
170
206
  * survive it — the shared version is a server-owned, monotonic,
171
207
  * advances-iff-content-changes counter that never resets while the server
172
- * lives. That invariant is what makes an optimistic `baseVersion` gate
208
+ * lives. That invariant is what makes an optimistic based-on gate
173
209
  * sound: "version unchanged ⇔ content unchanged", with no false conflicts
174
210
  * from close/reopen version resets and no false passes from a reopened
175
211
  * sequence coincidentally landing on a stale writer's number.
@@ -181,7 +217,7 @@ export declare class HydraniumTextDocuments<T extends TextDocument = TextDocumen
181
217
  /**
182
218
  * Texts pushed to the LSP textual language client via
183
219
  * {@link applyEditToLanguageClient} whose echoes have not come back yet
184
- * ({@link PendingPush}), keyed like the shadow by language-client URI.
220
+ * ({@link PendingLanguageClientPush}), keyed like the shadow by language-client URI.
185
221
  * Outbound pushes and inbound echoes are uncorrelated on the wire; this
186
222
  * FIFO is the explicit correlation, and it is what
187
223
  * {@link classifyLanguageClientChange} reconstructs against.
@@ -203,7 +239,7 @@ export declare class HydraniumTextDocuments<T extends TextDocument = TextDocumen
203
239
  * a pathological echo that never arrives; the memory cost until then is
204
240
  * one pre-push text per in-flight push, for milliseconds.
205
241
  */
206
- protected readonly __pendingPushes: Map<LanguageClientUri, PendingPush[]>;
242
+ protected readonly __pendingPushes: Map<LanguageClientUri, PendingLanguageClientPush[]>;
207
243
  /**
208
244
  * Tracked text content per URI for the LSP textual language client (Monaco / VS Code).
209
245
  * Owned here so {@link applyEditToLanguageClient} can compute minimal `workspace/applyEdit`
@@ -254,7 +290,7 @@ export declare class HydraniumTextDocuments<T extends TextDocument = TextDocumen
254
290
  * A content-identical write still fires the change event (rebuild): the
255
291
  * authored write's server-side rebuild is correctness-bearing, it just
256
292
  * mints no new version — nothing observable changed, so watchers'
257
- * `baseVersion` pointers stay valid.
293
+ * based-on versions stay valid.
258
294
  *
259
295
  * Returns the resulting shared version. Throws when the document is not
260
296
  * open — callers (`AstDocumentManager.update`) open first.
@@ -265,6 +301,26 @@ export declare class HydraniumTextDocuments<T extends TextDocument = TextDocumen
265
301
  notifyWillSaveTextDocumentWaitUntil(event: WillSaveTextDocumentParams, token: CancellationToken): HandlerResult<TextEdit[], void>;
266
302
  notifyDidSaveTextDocument(event: DidSaveTextDocumentParams, clientId?: string): void;
267
303
  notifyDidOpenTextDocument(event: DidOpenTextDocumentParams, clientId?: string): void;
304
+ /**
305
+ * Record `clientId` as an additional holder of a document another client
306
+ * already has open.
307
+ *
308
+ * Unlike the attach branch of {@link notifyDidOpenTextDocument} this does
309
+ * not refresh. That branch re-renders an attaching TEXTUAL view; a client
310
+ * reaching a document through a non-textual route has nothing to re-render,
311
+ * and refreshing per attach turns each into a Langium rebuild and dependent
312
+ * relink cascade.
313
+ *
314
+ * The staleness guard baselines at the SYNCED version, not a declared buffer
315
+ * version, because a client arriving this way holds no buffer of its own.
316
+ * Unifying the two routes therefore rebaselines a textual client's guard to a
317
+ * version it never declared.
318
+ *
319
+ * Returns whether a hold was added — `false` when `uri` is not open, or
320
+ * `clientId` already holds it.
321
+ */
322
+ attachClient(uri: DocumentUri, clientId: string): boolean;
323
+ protected logClientJoined(uri: DocumentUri, clientId: string, version: number, existingClients: readonly string[]): void;
268
324
  refreshContent(uri: DocumentUri, clientId: string): void;
269
325
  /**
270
326
  * The canonical key a document is stored under — the single point this store
@@ -273,7 +329,7 @@ export declare class HydraniumTextDocuments<T extends TextDocument = TextDocumen
273
329
  * two URIs for one physical file (a symlink path and its real path) into a
274
330
  * single registration — dedup at the editor layer, not just in
275
331
  * `LangiumDocuments`. The URI the client opened under is preserved separately
276
- * for egress addressing (see {@link DocumentTracking.languageClientUris}). The
332
+ * for egress addressing (see {@link DocumentTrackingRecord.languageClientUris}). The
277
333
  * policy is always bound (the framework defaults it to
278
334
  * `DefaultDocumentUriPolicy`, where canonical ≡ syntactic normalize).
279
335
  */
@@ -288,7 +344,7 @@ export declare class HydraniumTextDocuments<T extends TextDocument = TextDocumen
288
344
  */
289
345
  protected toLanguageClientUri(uri: string): LanguageClientUri;
290
346
  /** Get-or-create the per-URI tracking record. `uri` must already be a {@link documentKey}. */
291
- protected trackingFor(uri: CanonicalUri): DocumentTracking;
347
+ protected trackingFor(uri: CanonicalUri): DocumentTrackingRecord;
292
348
  setAuthor(uri: DocumentUri, version: number, author: string): void;
293
349
  /**
294
350
  * Resolve the synced `TextDocument` for `uri`. The store keys documents by
@@ -313,7 +369,7 @@ export declare class HydraniumTextDocuments<T extends TextDocument = TextDocumen
313
369
  * `0` for a URI this store has never seen. The shared sequence is
314
370
  * server-owned and monotonic across close/reopen cycles, and advances
315
371
  * exactly when the synced content changes — which is what makes it a sound
316
- * optimistic-concurrency token (`baseVersion` gates): version unchanged ⇔
372
+ * optimistic-concurrency token (based-on gates): version unchanged ⇔
317
373
  * content unchanged.
318
374
  */
319
375
  version(uri: DocumentUri): number;
@@ -334,6 +390,34 @@ export declare class HydraniumTextDocuments<T extends TextDocument = TextDocumen
334
390
  * workspace-wide builds from hashing every untouched document).
335
391
  */
336
392
  reconcileExternalContent(uri: DocumentUri, text: string): number | undefined;
393
+ /**
394
+ * Commit an integrity repair into the OPEN document for `uri`, returning the
395
+ * document that now holds it, or `undefined` when there was nothing here to
396
+ * commit into.
397
+ *
398
+ * The one thing this exists to do is address the store BY URI. A repair
399
+ * reaches the resync as a text-document object, and that object is the
400
+ * store's own only on the LSP path; a document built for an already-open URI
401
+ * through `LangiumDocumentFactory.fromString` carries its own, so writing the
402
+ * repair into it corrects a copy the store does not know about and the editor
403
+ * never sees.
404
+ *
405
+ * `parsedFrom` is the text the repaired AST was parsed from, and a mismatch
406
+ * against the current content REFUSES the commit: the store has moved on,
407
+ * which means an editor change landed after that parse, and committing would
408
+ * overwrite a newer edit with a repair computed against text the user has
409
+ * already replaced. The build that change provokes recomputes the repair.
410
+ *
411
+ * Deliberately NOT compared by version. A separately created document seeds
412
+ * its own numbering, so requiring the two to agree would refuse every commit
413
+ * on the path this exists for. Content is the thing both sides can be held to.
414
+ *
415
+ * The version is KEPT rather than stepped, and no change event is fired: the
416
+ * repair rides the build already under way, so minting a version would
417
+ * invalidate the based-on token every watcher just took, and an event would
418
+ * re-enter the build that is mid-flight.
419
+ */
420
+ commitRepair(uri: DocumentUri, parsedFrom: string, repaired: string): RepairCommit<T>;
337
421
  getAuthor(uri: DocumentUri, version?: number): string | undefined;
338
422
  isOpen(uri: DocumentUri): boolean;
339
423
  /**
@@ -436,12 +520,17 @@ export declare class HydraniumTextDocuments<T extends TextDocument = TextDocumen
436
520
  protected recordPendingPush(targetUri: LanguageClientUri, before: string | undefined, newText: string): void;
437
521
  /**
438
522
  * Decide what an incoming language-client change actually is, by
439
- * reconstructing the client's resulting buffer against the OLDEST push still
440
- * in flight for `clientFacing`.
523
+ * reconstructing the client's resulting buffer against the text its ranges
524
+ * address — the pre-push buffer of the OLDEST push still in flight for
525
+ * `clientFacing`, else whatever that client is believed to hold.
441
526
  *
442
- * `undefined` when nothing of ours is in flight, which is the ordinary path:
443
- * the client's ranges then address the synced text and the caller applies
444
- * them to it directly.
527
+ * `undefined` when the client's ranges address the synced text itself —
528
+ * nothing in flight, and no evidence the client holds anything else. That
529
+ * is the ordinary path, and the caller then applies the ranges directly.
530
+ * The two texts part company without a push in flight whenever a client
531
+ * attaches to a document another client has already written: it opened
532
+ * from disk, so applying its ranges to the synced text splices lines they
533
+ * never addressed.
445
534
  *
446
535
  * **Why the oldest, and why reconstruct at all.** The client applies our
447
536
  * pushes in order and echoes each against the buffer it held before that
@@ -486,5 +575,4 @@ export declare class HydraniumTextDocuments<T extends TextDocument = TextDocumen
486
575
  dispose(): void;
487
576
  };
488
577
  }
489
- export {};
490
578
  //# sourceMappingURL=hydranium-text-documents.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hydranium-text-documents.d.ts","sourceRoot":"","sources":["../../src/documents/hydranium-text-documents.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hydranium-text-documents.d.ts","sourceRoot":"","sources":["../../src/documents/hydranium-text-documents.ts"],"names":[],"mappings":"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"}