@eclipse-glsp/server 1.1.0-RC05

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 (618) hide show
  1. package/LICENSE +642 -0
  2. package/README.md +8 -0
  3. package/browser.d.ts +16 -0
  4. package/browser.js +18 -0
  5. package/lib/browser/di/app-module.d.ts +24 -0
  6. package/lib/browser/di/app-module.d.ts.map +1 -0
  7. package/lib/browser/di/app-module.js +55 -0
  8. package/lib/browser/di/app-module.js.map +1 -0
  9. package/lib/browser/di/console-logger.d.ts +29 -0
  10. package/lib/browser/di/console-logger.d.ts.map +1 -0
  11. package/lib/browser/di/console-logger.js +81 -0
  12. package/lib/browser/di/console-logger.js.map +1 -0
  13. package/lib/browser/index.d.ts +20 -0
  14. package/lib/browser/index.d.ts.map +1 -0
  15. package/lib/browser/index.js +36 -0
  16. package/lib/browser/index.js.map +1 -0
  17. package/lib/browser/launch/worker-server-launcher.d.ts +26 -0
  18. package/lib/browser/launch/worker-server-launcher.d.ts.map +1 -0
  19. package/lib/browser/launch/worker-server-launcher.js +65 -0
  20. package/lib/browser/launch/worker-server-launcher.js.map +1 -0
  21. package/lib/common/actions/action-dispatcher.d.ts +74 -0
  22. package/lib/common/actions/action-dispatcher.d.ts.map +1 -0
  23. package/lib/common/actions/action-dispatcher.js +128 -0
  24. package/lib/common/actions/action-dispatcher.js.map +1 -0
  25. package/lib/common/actions/action-dispatcher.spec.d.ts +2 -0
  26. package/lib/common/actions/action-dispatcher.spec.d.ts.map +1 -0
  27. package/lib/common/actions/action-dispatcher.spec.js +264 -0
  28. package/lib/common/actions/action-dispatcher.spec.js.map +1 -0
  29. package/lib/common/actions/action-handler-registry.d.ts +40 -0
  30. package/lib/common/actions/action-handler-registry.d.ts.map +1 -0
  31. package/lib/common/actions/action-handler-registry.js +65 -0
  32. package/lib/common/actions/action-handler-registry.js.map +1 -0
  33. package/lib/common/actions/action-handler-registry.spec.d.ts +2 -0
  34. package/lib/common/actions/action-handler-registry.spec.d.ts.map +1 -0
  35. package/lib/common/actions/action-handler-registry.spec.js +50 -0
  36. package/lib/common/actions/action-handler-registry.spec.js.map +1 -0
  37. package/lib/common/actions/action-handler.d.ts +55 -0
  38. package/lib/common/actions/action-handler.d.ts.map +1 -0
  39. package/lib/common/actions/action-handler.js +7 -0
  40. package/lib/common/actions/action-handler.js.map +1 -0
  41. package/lib/common/actions/client-action-handler.d.ts +30 -0
  42. package/lib/common/actions/client-action-handler.d.ts.map +1 -0
  43. package/lib/common/actions/client-action-handler.js +56 -0
  44. package/lib/common/actions/client-action-handler.js.map +1 -0
  45. package/lib/common/actions/global-action-provider.d.ts +30 -0
  46. package/lib/common/actions/global-action-provider.d.ts.map +1 -0
  47. package/lib/common/actions/global-action-provider.js +81 -0
  48. package/lib/common/actions/global-action-provider.js.map +1 -0
  49. package/lib/common/actions/global-action-provider.spec.d.ts +2 -0
  50. package/lib/common/actions/global-action-provider.spec.d.ts.map +1 -0
  51. package/lib/common/actions/global-action-provider.spec.js +70 -0
  52. package/lib/common/actions/global-action-provider.spec.js.map +1 -0
  53. package/lib/common/command/command-stack.d.ts +67 -0
  54. package/lib/common/command/command-stack.d.ts.map +1 -0
  55. package/lib/common/command/command-stack.js +117 -0
  56. package/lib/common/command/command-stack.js.map +1 -0
  57. package/lib/common/command/command-stack.spec.d.ts +2 -0
  58. package/lib/common/command/command-stack.spec.d.ts.map +1 -0
  59. package/lib/common/command/command-stack.spec.js +207 -0
  60. package/lib/common/command/command-stack.spec.js.map +1 -0
  61. package/lib/common/command/command.d.ts +63 -0
  62. package/lib/common/command/command.d.ts.map +1 -0
  63. package/lib/common/command/command.js +87 -0
  64. package/lib/common/command/command.js.map +1 -0
  65. package/lib/common/command/command.spec.d.ts +2 -0
  66. package/lib/common/command/command.spec.d.ts.map +1 -0
  67. package/lib/common/command/command.spec.js +86 -0
  68. package/lib/common/command/command.spec.js.map +1 -0
  69. package/lib/common/command/recording-command.d.ts +75 -0
  70. package/lib/common/command/recording-command.d.ts.map +1 -0
  71. package/lib/common/command/recording-command.js +99 -0
  72. package/lib/common/command/recording-command.js.map +1 -0
  73. package/lib/common/command/recording-command.spec.d.ts +17 -0
  74. package/lib/common/command/recording-command.spec.d.ts.map +1 -0
  75. package/lib/common/command/recording-command.spec.js +62 -0
  76. package/lib/common/command/recording-command.spec.js.map +1 -0
  77. package/lib/common/command/undo-redo-action-handler.d.ts +28 -0
  78. package/lib/common/command/undo-redo-action-handler.d.ts.map +1 -0
  79. package/lib/common/command/undo-redo-action-handler.js +72 -0
  80. package/lib/common/command/undo-redo-action-handler.js.map +1 -0
  81. package/lib/common/di/binding-target.d.ts +73 -0
  82. package/lib/common/di/binding-target.d.ts.map +1 -0
  83. package/lib/common/di/binding-target.js +143 -0
  84. package/lib/common/di/binding-target.js.map +1 -0
  85. package/lib/common/di/binding-target.spec.d.ts +2 -0
  86. package/lib/common/di/binding-target.spec.d.ts.map +1 -0
  87. package/lib/common/di/binding-target.spec.js +121 -0
  88. package/lib/common/di/binding-target.spec.js.map +1 -0
  89. package/lib/common/di/client-session-module.d.ts +19 -0
  90. package/lib/common/di/client-session-module.d.ts.map +1 -0
  91. package/lib/common/di/client-session-module.js +34 -0
  92. package/lib/common/di/client-session-module.js.map +1 -0
  93. package/lib/common/di/diagram-module.d.ts +130 -0
  94. package/lib/common/di/diagram-module.d.ts.map +1 -0
  95. package/lib/common/di/diagram-module.js +295 -0
  96. package/lib/common/di/diagram-module.js.map +1 -0
  97. package/lib/common/di/glsp-module.d.ts +47 -0
  98. package/lib/common/di/glsp-module.d.ts.map +1 -0
  99. package/lib/common/di/glsp-module.js +59 -0
  100. package/lib/common/di/glsp-module.js.map +1 -0
  101. package/lib/common/di/multi-binding.d.ts +41 -0
  102. package/lib/common/di/multi-binding.d.ts.map +1 -0
  103. package/lib/common/di/multi-binding.js +82 -0
  104. package/lib/common/di/multi-binding.js.map +1 -0
  105. package/lib/common/di/multi-bindings.spec.d.ts +2 -0
  106. package/lib/common/di/multi-bindings.spec.d.ts.map +1 -0
  107. package/lib/common/di/multi-bindings.spec.js +137 -0
  108. package/lib/common/di/multi-bindings.spec.js.map +1 -0
  109. package/lib/common/di/server-module.d.ts +73 -0
  110. package/lib/common/di/server-module.d.ts.map +1 -0
  111. package/lib/common/di/server-module.js +103 -0
  112. package/lib/common/di/server-module.js.map +1 -0
  113. package/lib/common/di/service-identifiers.d.ts +29 -0
  114. package/lib/common/di/service-identifiers.d.ts.map +1 -0
  115. package/lib/common/di/service-identifiers.js +14 -0
  116. package/lib/common/di/service-identifiers.js.map +1 -0
  117. package/lib/common/diagram/diagram-configuration.d.ts +89 -0
  118. package/lib/common/diagram/diagram-configuration.d.ts.map +1 -0
  119. package/lib/common/diagram/diagram-configuration.js +30 -0
  120. package/lib/common/diagram/diagram-configuration.js.map +1 -0
  121. package/lib/common/diagram/request-type-hints-action-handler.d.ts +25 -0
  122. package/lib/common/diagram/request-type-hints-action-handler.d.ts.map +1 -0
  123. package/lib/common/diagram/request-type-hints-action-handler.js +53 -0
  124. package/lib/common/diagram/request-type-hints-action-handler.js.map +1 -0
  125. package/lib/common/diagram/request-type-hints-action-handler.spec.d.ts +2 -0
  126. package/lib/common/diagram/request-type-hints-action-handler.spec.d.ts.map +1 -0
  127. package/lib/common/diagram/request-type-hints-action-handler.spec.js +57 -0
  128. package/lib/common/diagram/request-type-hints-action-handler.spec.js.map +1 -0
  129. package/lib/common/features/clipboard/request-clipboard-data-action-handler.d.ts +26 -0
  130. package/lib/common/features/clipboard/request-clipboard-data-action-handler.d.ts.map +1 -0
  131. package/lib/common/features/clipboard/request-clipboard-data-action-handler.js +61 -0
  132. package/lib/common/features/clipboard/request-clipboard-data-action-handler.js.map +1 -0
  133. package/lib/common/features/contextactions/command-palette-action-provider.d.ts +63 -0
  134. package/lib/common/features/contextactions/command-palette-action-provider.d.ts.map +1 -0
  135. package/lib/common/features/contextactions/command-palette-action-provider.js +72 -0
  136. package/lib/common/features/contextactions/command-palette-action-provider.js.map +1 -0
  137. package/lib/common/features/contextactions/context-actions-provider-registry.d.ts +12 -0
  138. package/lib/common/features/contextactions/context-actions-provider-registry.d.ts.map +1 -0
  139. package/lib/common/features/contextactions/context-actions-provider-registry.js +70 -0
  140. package/lib/common/features/contextactions/context-actions-provider-registry.js.map +1 -0
  141. package/lib/common/features/contextactions/context-actions-provider-registry.spec.d.ts +2 -0
  142. package/lib/common/features/contextactions/context-actions-provider-registry.spec.d.ts.map +1 -0
  143. package/lib/common/features/contextactions/context-actions-provider-registry.spec.js +34 -0
  144. package/lib/common/features/contextactions/context-actions-provider-registry.spec.js.map +1 -0
  145. package/lib/common/features/contextactions/context-actions-provider.d.ts +34 -0
  146. package/lib/common/features/contextactions/context-actions-provider.d.ts.map +1 -0
  147. package/lib/common/features/contextactions/context-actions-provider.js +5 -0
  148. package/lib/common/features/contextactions/context-actions-provider.js.map +1 -0
  149. package/lib/common/features/contextactions/context-menu-item-provider.d.ts +43 -0
  150. package/lib/common/features/contextactions/context-menu-item-provider.d.ts.map +1 -0
  151. package/lib/common/features/contextactions/context-menu-item-provider.js +36 -0
  152. package/lib/common/features/contextactions/context-menu-item-provider.js.map +1 -0
  153. package/lib/common/features/contextactions/request-context-actions-handler.d.ts +24 -0
  154. package/lib/common/features/contextactions/request-context-actions-handler.d.ts.map +1 -0
  155. package/lib/common/features/contextactions/request-context-actions-handler.js +53 -0
  156. package/lib/common/features/contextactions/request-context-actions-handler.js.map +1 -0
  157. package/lib/common/features/contextactions/request-context-actions-handler.spec.d.ts +2 -0
  158. package/lib/common/features/contextactions/request-context-actions-handler.spec.d.ts.map +1 -0
  159. package/lib/common/features/contextactions/request-context-actions-handler.spec.js +63 -0
  160. package/lib/common/features/contextactions/request-context-actions-handler.spec.js.map +1 -0
  161. package/lib/common/features/contextactions/tool-palette-item-provider.d.ts +50 -0
  162. package/lib/common/features/contextactions/tool-palette-item-provider.d.ts.map +1 -0
  163. package/lib/common/features/contextactions/tool-palette-item-provider.js +86 -0
  164. package/lib/common/features/contextactions/tool-palette-item-provider.js.map +1 -0
  165. package/lib/common/features/contextactions/tool-palette-item-provider.spec.d.ts +2 -0
  166. package/lib/common/features/contextactions/tool-palette-item-provider.spec.d.ts.map +1 -0
  167. package/lib/common/features/contextactions/tool-palette-item-provider.spec.js +48 -0
  168. package/lib/common/features/contextactions/tool-palette-item-provider.spec.js.map +1 -0
  169. package/lib/common/features/directediting/context-edit-validator-registry.d.ts +14 -0
  170. package/lib/common/features/directediting/context-edit-validator-registry.d.ts.map +1 -0
  171. package/lib/common/features/directediting/context-edit-validator-registry.js +57 -0
  172. package/lib/common/features/directediting/context-edit-validator-registry.js.map +1 -0
  173. package/lib/common/features/directediting/context-edit-validator-registry.spec.d.ts +2 -0
  174. package/lib/common/features/directediting/context-edit-validator-registry.spec.d.ts.map +1 -0
  175. package/lib/common/features/directediting/context-edit-validator-registry.spec.js +44 -0
  176. package/lib/common/features/directediting/context-edit-validator-registry.spec.js.map +1 -0
  177. package/lib/common/features/directediting/context-edit-validator.d.ts +25 -0
  178. package/lib/common/features/directediting/context-edit-validator.d.ts.map +1 -0
  179. package/lib/common/features/directediting/context-edit-validator.js +40 -0
  180. package/lib/common/features/directediting/context-edit-validator.js.map +1 -0
  181. package/lib/common/features/directediting/label-edit-validator.d.ts +32 -0
  182. package/lib/common/features/directediting/label-edit-validator.d.ts.map +1 -0
  183. package/lib/common/features/directediting/label-edit-validator.js +21 -0
  184. package/lib/common/features/directediting/label-edit-validator.js.map +1 -0
  185. package/lib/common/features/directediting/request-edit-validation-handler.d.ts +26 -0
  186. package/lib/common/features/directediting/request-edit-validation-handler.d.ts.map +1 -0
  187. package/lib/common/features/directediting/request-edit-validation-handler.js +61 -0
  188. package/lib/common/features/directediting/request-edit-validation-handler.js.map +1 -0
  189. package/lib/common/features/directediting/request-edit-validation-handler.spec.d.ts +2 -0
  190. package/lib/common/features/directediting/request-edit-validation-handler.spec.d.ts.map +1 -0
  191. package/lib/common/features/directediting/request-edit-validation-handler.spec.js +97 -0
  192. package/lib/common/features/directediting/request-edit-validation-handler.spec.js.map +1 -0
  193. package/lib/common/features/layout/computed-bounds-action-handler.d.ts +34 -0
  194. package/lib/common/features/layout/computed-bounds-action-handler.d.ts.map +1 -0
  195. package/lib/common/features/layout/computed-bounds-action-handler.js +55 -0
  196. package/lib/common/features/layout/computed-bounds-action-handler.js.map +1 -0
  197. package/lib/common/features/layout/layout-engine.d.ts +29 -0
  198. package/lib/common/features/layout/layout-engine.d.ts.map +1 -0
  199. package/lib/common/features/layout/layout-engine.js +20 -0
  200. package/lib/common/features/layout/layout-engine.js.map +1 -0
  201. package/lib/common/features/layout/layout-operation-handler.d.ts +37 -0
  202. package/lib/common/features/layout/layout-operation-handler.d.ts.map +1 -0
  203. package/lib/common/features/layout/layout-operation-handler.js +82 -0
  204. package/lib/common/features/layout/layout-operation-handler.js.map +1 -0
  205. package/lib/common/features/model/gmodel-factory.d.ts +39 -0
  206. package/lib/common/features/model/gmodel-factory.d.ts.map +1 -0
  207. package/lib/common/features/model/gmodel-factory.js +39 -0
  208. package/lib/common/features/model/gmodel-factory.js.map +1 -0
  209. package/lib/common/features/model/gmodel-index.d.ts +107 -0
  210. package/lib/common/features/model/gmodel-index.d.ts.map +1 -0
  211. package/lib/common/features/model/gmodel-index.js +193 -0
  212. package/lib/common/features/model/gmodel-index.js.map +1 -0
  213. package/lib/common/features/model/gmodel-serializer.d.ts +67 -0
  214. package/lib/common/features/model/gmodel-serializer.d.ts.map +1 -0
  215. package/lib/common/features/model/gmodel-serializer.js +143 -0
  216. package/lib/common/features/model/gmodel-serializer.js.map +1 -0
  217. package/lib/common/features/model/gmodel-serializer.spec.d.ts +2 -0
  218. package/lib/common/features/model/gmodel-serializer.spec.d.ts.map +1 -0
  219. package/lib/common/features/model/gmodel-serializer.spec.js +124 -0
  220. package/lib/common/features/model/gmodel-serializer.spec.js.map +1 -0
  221. package/lib/common/features/model/model-state.d.ts +51 -0
  222. package/lib/common/features/model/model-state.d.ts.map +1 -0
  223. package/lib/common/features/model/model-state.js +74 -0
  224. package/lib/common/features/model/model-state.js.map +1 -0
  225. package/lib/common/features/model/model-submission-handler.d.ts +58 -0
  226. package/lib/common/features/model/model-submission-handler.d.ts.map +1 -0
  227. package/lib/common/features/model/model-submission-handler.js +102 -0
  228. package/lib/common/features/model/model-submission-handler.js.map +1 -0
  229. package/lib/common/features/model/request-model-action-handler.d.ts +37 -0
  230. package/lib/common/features/model/request-model-action-handler.d.ts.map +1 -0
  231. package/lib/common/features/model/request-model-action-handler.js +83 -0
  232. package/lib/common/features/model/request-model-action-handler.js.map +1 -0
  233. package/lib/common/features/model/save-model-action-handler.d.ts +26 -0
  234. package/lib/common/features/model/save-model-action-handler.d.ts.map +1 -0
  235. package/lib/common/features/model/save-model-action-handler.js +54 -0
  236. package/lib/common/features/model/save-model-action-handler.js.map +1 -0
  237. package/lib/common/features/model/source-model-storage.d.ts +47 -0
  238. package/lib/common/features/model/source-model-storage.d.ts.map +1 -0
  239. package/lib/common/features/model/source-model-storage.js +5 -0
  240. package/lib/common/features/model/source-model-storage.js.map +1 -0
  241. package/lib/common/features/navigation/json-opener-options.d.ts +36 -0
  242. package/lib/common/features/navigation/json-opener-options.d.ts.map +1 -0
  243. package/lib/common/features/navigation/json-opener-options.js +60 -0
  244. package/lib/common/features/navigation/json-opener-options.js.map +1 -0
  245. package/lib/common/features/navigation/navigation-target-provider-registry.d.ts +12 -0
  246. package/lib/common/features/navigation/navigation-target-provider-registry.d.ts.map +1 -0
  247. package/lib/common/features/navigation/navigation-target-provider-registry.js +47 -0
  248. package/lib/common/features/navigation/navigation-target-provider-registry.js.map +1 -0
  249. package/lib/common/features/navigation/navigation-target-provider.d.ts +48 -0
  250. package/lib/common/features/navigation/navigation-target-provider.d.ts.map +1 -0
  251. package/lib/common/features/navigation/navigation-target-provider.js +5 -0
  252. package/lib/common/features/navigation/navigation-target-provider.js.map +1 -0
  253. package/lib/common/features/navigation/navigation-target-resolution.d.ts +23 -0
  254. package/lib/common/features/navigation/navigation-target-resolution.d.ts.map +1 -0
  255. package/lib/common/features/navigation/navigation-target-resolution.js +12 -0
  256. package/lib/common/features/navigation/navigation-target-resolution.js.map +1 -0
  257. package/lib/common/features/navigation/navigation-target-resolver.d.ts +31 -0
  258. package/lib/common/features/navigation/navigation-target-resolver.d.ts.map +1 -0
  259. package/lib/common/features/navigation/navigation-target-resolver.js +49 -0
  260. package/lib/common/features/navigation/navigation-target-resolver.js.map +1 -0
  261. package/lib/common/features/navigation/request-navigation-targets-action-handler.d.ts +24 -0
  262. package/lib/common/features/navigation/request-navigation-targets-action-handler.d.ts.map +1 -0
  263. package/lib/common/features/navigation/request-navigation-targets-action-handler.js +55 -0
  264. package/lib/common/features/navigation/request-navigation-targets-action-handler.js.map +1 -0
  265. package/lib/common/features/navigation/resolve-navigation-targets-action-handler.d.ts +26 -0
  266. package/lib/common/features/navigation/resolve-navigation-targets-action-handler.d.ts.map +1 -0
  267. package/lib/common/features/navigation/resolve-navigation-targets-action-handler.js +59 -0
  268. package/lib/common/features/navigation/resolve-navigation-targets-action-handler.js.map +1 -0
  269. package/lib/common/features/popup/popup-model-factory.d.ts +36 -0
  270. package/lib/common/features/popup/popup-model-factory.d.ts.map +1 -0
  271. package/lib/common/features/popup/popup-model-factory.js +20 -0
  272. package/lib/common/features/popup/popup-model-factory.js.map +1 -0
  273. package/lib/common/features/popup/request-popup-model-action-handler.d.ts +31 -0
  274. package/lib/common/features/popup/request-popup-model-action-handler.d.ts.map +1 -0
  275. package/lib/common/features/popup/request-popup-model-action-handler.js +77 -0
  276. package/lib/common/features/popup/request-popup-model-action-handler.js.map +1 -0
  277. package/lib/common/features/validation/model-validator.d.ts +33 -0
  278. package/lib/common/features/validation/model-validator.d.ts.map +1 -0
  279. package/lib/common/features/validation/model-validator.js +5 -0
  280. package/lib/common/features/validation/model-validator.js.map +1 -0
  281. package/lib/common/features/validation/request-markers-handler.d.ts +11 -0
  282. package/lib/common/features/validation/request-markers-handler.d.ts.map +1 -0
  283. package/lib/common/features/validation/request-markers-handler.js +70 -0
  284. package/lib/common/features/validation/request-markers-handler.js.map +1 -0
  285. package/lib/common/gmodel/apply-label-edit-operation-handler.d.ts +8 -0
  286. package/lib/common/gmodel/apply-label-edit-operation-handler.d.ts.map +1 -0
  287. package/lib/common/gmodel/apply-label-edit-operation-handler.js +46 -0
  288. package/lib/common/gmodel/apply-label-edit-operation-handler.js.map +1 -0
  289. package/lib/common/gmodel/change-bounds-operation-handler.d.ts +13 -0
  290. package/lib/common/gmodel/change-bounds-operation-handler.d.ts.map +1 -0
  291. package/lib/common/gmodel/change-bounds-operation-handler.js +71 -0
  292. package/lib/common/gmodel/change-bounds-operation-handler.js.map +1 -0
  293. package/lib/common/gmodel/change-routing-points-operation-handler.d.ts +24 -0
  294. package/lib/common/gmodel/change-routing-points-operation-handler.d.ts.map +1 -0
  295. package/lib/common/gmodel/change-routing-points-operation-handler.js +50 -0
  296. package/lib/common/gmodel/change-routing-points-operation-handler.js.map +1 -0
  297. package/lib/common/gmodel/cut-operation-handler.d.ts +26 -0
  298. package/lib/common/gmodel/cut-operation-handler.d.ts.map +1 -0
  299. package/lib/common/gmodel/cut-operation-handler.js +55 -0
  300. package/lib/common/gmodel/cut-operation-handler.js.map +1 -0
  301. package/lib/common/gmodel/delete-operation-handler.d.ts +32 -0
  302. package/lib/common/gmodel/delete-operation-handler.d.ts.map +1 -0
  303. package/lib/common/gmodel/delete-operation-handler.js +119 -0
  304. package/lib/common/gmodel/delete-operation-handler.js.map +1 -0
  305. package/lib/common/gmodel/gmodel-create-edge-operation-handler.d.ts +35 -0
  306. package/lib/common/gmodel/gmodel-create-edge-operation-handler.d.ts.map +1 -0
  307. package/lib/common/gmodel/gmodel-create-edge-operation-handler.js +64 -0
  308. package/lib/common/gmodel/gmodel-create-edge-operation-handler.js.map +1 -0
  309. package/lib/common/gmodel/gmodel-create-node-operation-handler.d.ts +58 -0
  310. package/lib/common/gmodel/gmodel-create-node-operation-handler.d.ts.map +1 -0
  311. package/lib/common/gmodel/gmodel-create-node-operation-handler.js +100 -0
  312. package/lib/common/gmodel/gmodel-create-node-operation-handler.js.map +1 -0
  313. package/lib/common/gmodel/gmodel-diagram-module.d.ts +31 -0
  314. package/lib/common/gmodel/gmodel-diagram-module.d.ts.map +1 -0
  315. package/lib/common/gmodel/gmodel-diagram-module.js +80 -0
  316. package/lib/common/gmodel/gmodel-diagram-module.js.map +1 -0
  317. package/lib/common/gmodel/gmodel-operation-handler.d.ts +23 -0
  318. package/lib/common/gmodel/gmodel-operation-handler.d.ts.map +1 -0
  319. package/lib/common/gmodel/gmodel-operation-handler.js +43 -0
  320. package/lib/common/gmodel/gmodel-operation-handler.js.map +1 -0
  321. package/lib/common/gmodel/index.d.ts +27 -0
  322. package/lib/common/gmodel/index.d.ts.map +1 -0
  323. package/lib/common/gmodel/index.js +43 -0
  324. package/lib/common/gmodel/index.js.map +1 -0
  325. package/lib/common/gmodel/paste-operation-handler.d.ts +36 -0
  326. package/lib/common/gmodel/paste-operation-handler.d.ts.map +1 -0
  327. package/lib/common/gmodel/paste-operation-handler.js +136 -0
  328. package/lib/common/gmodel/paste-operation-handler.js.map +1 -0
  329. package/lib/common/gmodel/reconnect-edge-operation-handler.d.ts +9 -0
  330. package/lib/common/gmodel/reconnect-edge-operation-handler.d.ts.map +1 -0
  331. package/lib/common/gmodel/reconnect-edge-operation-handler.js +64 -0
  332. package/lib/common/gmodel/reconnect-edge-operation-handler.js.map +1 -0
  333. package/lib/common/index.d.ts +89 -0
  334. package/lib/common/index.d.ts.map +1 -0
  335. package/lib/common/index.js +105 -0
  336. package/lib/common/index.js.map +1 -0
  337. package/lib/common/launch/glsp-server-launcher.d.ts +34 -0
  338. package/lib/common/launch/glsp-server-launcher.d.ts.map +1 -0
  339. package/lib/common/launch/glsp-server-launcher.js +64 -0
  340. package/lib/common/launch/glsp-server-launcher.js.map +1 -0
  341. package/lib/common/operations/compound-operation-handler.d.ts +25 -0
  342. package/lib/common/operations/compound-operation-handler.d.ts.map +1 -0
  343. package/lib/common/operations/compound-operation-handler.js +82 -0
  344. package/lib/common/operations/compound-operation-handler.js.map +1 -0
  345. package/lib/common/operations/create-operation-handler.d.ts +32 -0
  346. package/lib/common/operations/create-operation-handler.d.ts.map +1 -0
  347. package/lib/common/operations/create-operation-handler.js +31 -0
  348. package/lib/common/operations/create-operation-handler.js.map +1 -0
  349. package/lib/common/operations/operation-action-handler.d.ts +42 -0
  350. package/lib/common/operations/operation-action-handler.d.ts.map +1 -0
  351. package/lib/common/operations/operation-action-handler.js +109 -0
  352. package/lib/common/operations/operation-action-handler.js.map +1 -0
  353. package/lib/common/operations/operation-handler-registry.d.ts +38 -0
  354. package/lib/common/operations/operation-handler-registry.d.ts.map +1 -0
  355. package/lib/common/operations/operation-handler-registry.js +87 -0
  356. package/lib/common/operations/operation-handler-registry.js.map +1 -0
  357. package/lib/common/operations/operation-handler-registry.spec.d.ts +2 -0
  358. package/lib/common/operations/operation-handler-registry.spec.d.ts.map +1 -0
  359. package/lib/common/operations/operation-handler-registry.spec.js +50 -0
  360. package/lib/common/operations/operation-handler-registry.spec.js.map +1 -0
  361. package/lib/common/operations/operation-handler.d.ts +67 -0
  362. package/lib/common/operations/operation-handler.d.ts.map +1 -0
  363. package/lib/common/operations/operation-handler.js +56 -0
  364. package/lib/common/operations/operation-handler.js.map +1 -0
  365. package/lib/common/protocol/glsp-client-proxy.d.ts +45 -0
  366. package/lib/common/protocol/glsp-client-proxy.d.ts.map +1 -0
  367. package/lib/common/protocol/glsp-client-proxy.js +53 -0
  368. package/lib/common/protocol/glsp-client-proxy.js.map +1 -0
  369. package/lib/common/protocol/glsp-server-listener.d.ts +37 -0
  370. package/lib/common/protocol/glsp-server-listener.d.ts.map +1 -0
  371. package/lib/common/protocol/glsp-server-listener.js +5 -0
  372. package/lib/common/protocol/glsp-server-listener.js.map +1 -0
  373. package/lib/common/protocol/glsp-server.d.ts +150 -0
  374. package/lib/common/protocol/glsp-server.d.ts.map +1 -0
  375. package/lib/common/protocol/glsp-server.js +188 -0
  376. package/lib/common/protocol/glsp-server.js.map +1 -0
  377. package/lib/common/protocol/glsp-server.spec.d.ts +2 -0
  378. package/lib/common/protocol/glsp-server.spec.d.ts.map +1 -0
  379. package/lib/common/protocol/glsp-server.spec.js +119 -0
  380. package/lib/common/protocol/glsp-server.spec.js.map +1 -0
  381. package/lib/common/session/client-session-factory.d.ts +42 -0
  382. package/lib/common/session/client-session-factory.d.ts.map +1 -0
  383. package/lib/common/session/client-session-factory.js +54 -0
  384. package/lib/common/session/client-session-factory.js.map +1 -0
  385. package/lib/common/session/client-session-factory.spec.d.ts +2 -0
  386. package/lib/common/session/client-session-factory.spec.d.ts.map +1 -0
  387. package/lib/common/session/client-session-factory.spec.js +56 -0
  388. package/lib/common/session/client-session-factory.spec.js.map +1 -0
  389. package/lib/common/session/client-session-initializer.d.ts +26 -0
  390. package/lib/common/session/client-session-initializer.d.ts.map +1 -0
  391. package/lib/common/session/client-session-initializer.js +5 -0
  392. package/lib/common/session/client-session-initializer.js.map +1 -0
  393. package/lib/common/session/client-session-listener.d.ts +40 -0
  394. package/lib/common/session/client-session-listener.d.ts.map +1 -0
  395. package/lib/common/session/client-session-listener.js +3 -0
  396. package/lib/common/session/client-session-listener.js.map +1 -0
  397. package/lib/common/session/client-session-manager.d.ts +102 -0
  398. package/lib/common/session/client-session-manager.d.ts.map +1 -0
  399. package/lib/common/session/client-session-manager.js +116 -0
  400. package/lib/common/session/client-session-manager.js.map +1 -0
  401. package/lib/common/session/client-session-manager.spec.d.ts +2 -0
  402. package/lib/common/session/client-session-manager.spec.d.ts.map +1 -0
  403. package/lib/common/session/client-session-manager.spec.js +74 -0
  404. package/lib/common/session/client-session-manager.spec.js.map +1 -0
  405. package/lib/common/session/client-session.d.ts +52 -0
  406. package/lib/common/session/client-session.d.ts.map +1 -0
  407. package/lib/common/session/client-session.js +34 -0
  408. package/lib/common/session/client-session.js.map +1 -0
  409. package/lib/common/test/mock-util.d.ts +117 -0
  410. package/lib/common/test/mock-util.d.ts.map +1 -0
  411. package/lib/common/test/mock-util.js +194 -0
  412. package/lib/common/test/mock-util.js.map +1 -0
  413. package/lib/common/utils/args-util.d.ts +38 -0
  414. package/lib/common/utils/args-util.d.ts.map +1 -0
  415. package/lib/common/utils/args-util.js +81 -0
  416. package/lib/common/utils/args-util.js.map +1 -0
  417. package/lib/common/utils/client-options-util.d.ts +20 -0
  418. package/lib/common/utils/client-options-util.d.ts.map +1 -0
  419. package/lib/common/utils/client-options-util.js +26 -0
  420. package/lib/common/utils/client-options-util.js.map +1 -0
  421. package/lib/common/utils/glsp-server-error.d.ts +21 -0
  422. package/lib/common/utils/glsp-server-error.d.ts.map +1 -0
  423. package/lib/common/utils/glsp-server-error.js +33 -0
  424. package/lib/common/utils/glsp-server-error.js.map +1 -0
  425. package/lib/common/utils/layout-util.d.ts +74 -0
  426. package/lib/common/utils/layout-util.d.ts.map +1 -0
  427. package/lib/common/utils/layout-util.js +166 -0
  428. package/lib/common/utils/layout-util.js.map +1 -0
  429. package/lib/common/utils/logger.d.ts +27 -0
  430. package/lib/common/utils/logger.d.ts.map +1 -0
  431. package/lib/common/utils/logger.js +67 -0
  432. package/lib/common/utils/logger.js.map +1 -0
  433. package/lib/common/utils/promise-queue.d.ts +48 -0
  434. package/lib/common/utils/promise-queue.d.ts.map +1 -0
  435. package/lib/common/utils/promise-queue.js +93 -0
  436. package/lib/common/utils/promise-queue.js.map +1 -0
  437. package/lib/common/utils/promise-queue.spec.d.ts +2 -0
  438. package/lib/common/utils/promise-queue.spec.d.ts.map +1 -0
  439. package/lib/common/utils/promise-queue.spec.js +117 -0
  440. package/lib/common/utils/promise-queue.spec.js.map +1 -0
  441. package/lib/common/utils/registry.d.ts +73 -0
  442. package/lib/common/utils/registry.d.ts.map +1 -0
  443. package/lib/common/utils/registry.js +160 -0
  444. package/lib/common/utils/registry.js.map +1 -0
  445. package/lib/common/utils/registry.spec.d.ts +2 -0
  446. package/lib/common/utils/registry.spec.d.ts.map +1 -0
  447. package/lib/common/utils/registry.spec.js +199 -0
  448. package/lib/common/utils/registry.spec.js.map +1 -0
  449. package/lib/node/abstract-json-model-storage.d.ts +45 -0
  450. package/lib/node/abstract-json-model-storage.d.ts.map +1 -0
  451. package/lib/node/abstract-json-model-storage.js +103 -0
  452. package/lib/node/abstract-json-model-storage.js.map +1 -0
  453. package/lib/node/di/app-module.d.ts +36 -0
  454. package/lib/node/di/app-module.d.ts.map +1 -0
  455. package/lib/node/di/app-module.js +91 -0
  456. package/lib/node/di/app-module.js.map +1 -0
  457. package/lib/node/di/winston-logger.d.ts +32 -0
  458. package/lib/node/di/winston-logger.d.ts.map +1 -0
  459. package/lib/node/di/winston-logger.js +57 -0
  460. package/lib/node/di/winston-logger.js.map +1 -0
  461. package/lib/node/gmodel/gmodel-storage.d.ts +34 -0
  462. package/lib/node/gmodel/gmodel-storage.d.ts.map +1 -0
  463. package/lib/node/gmodel/gmodel-storage.js +68 -0
  464. package/lib/node/gmodel/gmodel-storage.js.map +1 -0
  465. package/lib/node/index.d.ts +24 -0
  466. package/lib/node/index.d.ts.map +1 -0
  467. package/lib/node/index.js +40 -0
  468. package/lib/node/index.js.map +1 -0
  469. package/lib/node/launch/cli-parser.d.ts +34 -0
  470. package/lib/node/launch/cli-parser.d.ts.map +1 -0
  471. package/lib/node/launch/cli-parser.js +71 -0
  472. package/lib/node/launch/cli-parser.js.map +1 -0
  473. package/lib/node/launch/cli-parser.spec.d.ts +2 -0
  474. package/lib/node/launch/cli-parser.spec.d.ts.map +1 -0
  475. package/lib/node/launch/cli-parser.spec.js +56 -0
  476. package/lib/node/launch/cli-parser.spec.js.map +1 -0
  477. package/lib/node/launch/socket-cli-parser.d.ts +9 -0
  478. package/lib/node/launch/socket-cli-parser.d.ts.map +1 -0
  479. package/lib/node/launch/socket-cli-parser.js +43 -0
  480. package/lib/node/launch/socket-cli-parser.js.map +1 -0
  481. package/lib/node/launch/socket-cli-parser.spec.d.ts +2 -0
  482. package/lib/node/launch/socket-cli-parser.spec.d.ts.map +1 -0
  483. package/lib/node/launch/socket-cli-parser.spec.js +66 -0
  484. package/lib/node/launch/socket-cli-parser.spec.js.map +1 -0
  485. package/lib/node/launch/socket-server-launcher.d.ts +34 -0
  486. package/lib/node/launch/socket-server-launcher.d.ts.map +1 -0
  487. package/lib/node/launch/socket-server-launcher.js +104 -0
  488. package/lib/node/launch/socket-server-launcher.js.map +1 -0
  489. package/lib/node/launch/socket-server-launcher.spec.d.ts +17 -0
  490. package/lib/node/launch/socket-server-launcher.spec.d.ts.map +1 -0
  491. package/lib/node/launch/socket-server-launcher.spec.js +70 -0
  492. package/lib/node/launch/socket-server-launcher.spec.js.map +1 -0
  493. package/node.d.ts +16 -0
  494. package/node.js +18 -0
  495. package/package.json +77 -0
  496. package/src/browser/di/app-module.ts +55 -0
  497. package/src/browser/di/console-logger.ts +71 -0
  498. package/src/browser/index.ts +19 -0
  499. package/src/browser/launch/worker-server-launcher.ts +58 -0
  500. package/src/common/actions/action-dispatcher.spec.ts +290 -0
  501. package/src/common/actions/action-dispatcher.ts +152 -0
  502. package/src/common/actions/action-handler-registry.spec.ts +52 -0
  503. package/src/common/actions/action-handler-registry.ts +60 -0
  504. package/src/common/actions/action-handler.ts +62 -0
  505. package/src/common/actions/client-action-handler.ts +50 -0
  506. package/src/common/actions/global-action-provider.spec.ts +79 -0
  507. package/src/common/actions/global-action-provider.ts +72 -0
  508. package/src/common/command/command-stack.spec.ts +239 -0
  509. package/src/common/command/command-stack.ts +159 -0
  510. package/src/common/command/command.spec.ts +93 -0
  511. package/src/common/command/command.ts +124 -0
  512. package/src/common/command/recording-command.spec.ts +74 -0
  513. package/src/common/command/recording-command.ts +119 -0
  514. package/src/common/command/undo-redo-action-handler.ts +57 -0
  515. package/src/common/di/binding-target.spec.ts +147 -0
  516. package/src/common/di/binding-target.ts +188 -0
  517. package/src/common/di/client-session-module.ts +29 -0
  518. package/src/common/di/diagram-module.ts +410 -0
  519. package/src/common/di/glsp-module.ts +66 -0
  520. package/src/common/di/multi-binding.ts +89 -0
  521. package/src/common/di/multi-bindings.spec.ts +133 -0
  522. package/src/common/di/server-module.ts +131 -0
  523. package/src/common/di/service-identifiers.ts +39 -0
  524. package/src/common/diagram/diagram-configuration.ts +97 -0
  525. package/src/common/diagram/request-type-hints-action-handler.spec.ts +59 -0
  526. package/src/common/diagram/request-type-hints-action-handler.ts +36 -0
  527. package/src/common/features/clipboard/request-clipboard-data-action-handler.ts +51 -0
  528. package/src/common/features/contextactions/command-palette-action-provider.ts +94 -0
  529. package/src/common/features/contextactions/context-actions-provider-registry.spec.ts +69 -0
  530. package/src/common/features/contextactions/context-actions-provider-registry.ts +47 -0
  531. package/src/common/features/contextactions/context-actions-provider.ts +36 -0
  532. package/src/common/features/contextactions/context-menu-item-provider.ts +52 -0
  533. package/src/common/features/contextactions/request-context-actions-handler.spec.ts +75 -0
  534. package/src/common/features/contextactions/request-context-actions-handler.ts +37 -0
  535. package/src/common/features/contextactions/tool-palette-item-provider.spec.ts +46 -0
  536. package/src/common/features/contextactions/tool-palette-item-provider.ts +88 -0
  537. package/src/common/features/directediting/context-edit-validator-registry.spec.ts +54 -0
  538. package/src/common/features/directediting/context-edit-validator-registry.ts +43 -0
  539. package/src/common/features/directediting/context-edit-validator.ts +55 -0
  540. package/src/common/features/directediting/label-edit-validator.ts +35 -0
  541. package/src/common/features/directediting/request-edit-validation-handler.spec.ts +131 -0
  542. package/src/common/features/directediting/request-edit-validation-handler.ts +43 -0
  543. package/src/common/features/layout/computed-bounds-action-handler.ts +56 -0
  544. package/src/common/features/layout/layout-engine.ts +31 -0
  545. package/src/common/features/layout/layout-operation-handler.ts +62 -0
  546. package/src/common/features/model/gmodel-factory.ts +60 -0
  547. package/src/common/features/model/gmodel-index.ts +195 -0
  548. package/src/common/features/model/gmodel-serializer.spec.ts +141 -0
  549. package/src/common/features/model/gmodel-serializer.ts +175 -0
  550. package/src/common/features/model/model-state.ts +98 -0
  551. package/src/common/features/model/model-submission-handler.ts +110 -0
  552. package/src/common/features/model/request-model-action-handler.ts +67 -0
  553. package/src/common/features/model/save-model-action-handler.ts +37 -0
  554. package/src/common/features/model/source-model-storage.ts +49 -0
  555. package/src/common/features/navigation/json-opener-options.ts +69 -0
  556. package/src/common/features/navigation/navigation-target-provider-registry.ts +36 -0
  557. package/src/common/features/navigation/navigation-target-provider.ts +50 -0
  558. package/src/common/features/navigation/navigation-target-resolution.ts +22 -0
  559. package/src/common/features/navigation/navigation-target-resolver.ts +61 -0
  560. package/src/common/features/navigation/request-navigation-targets-action-handler.ts +39 -0
  561. package/src/common/features/navigation/resolve-navigation-targets-action-handler.ts +42 -0
  562. package/src/common/features/popup/popup-model-factory.ts +38 -0
  563. package/src/common/features/popup/request-popup-model-action-handler.ts +60 -0
  564. package/src/common/features/validation/model-validator.ts +34 -0
  565. package/src/common/features/validation/request-markers-handler.ts +51 -0
  566. package/src/common/gmodel/README.md +7 -0
  567. package/src/common/gmodel/apply-label-edit-operation-handler.ts +36 -0
  568. package/src/common/gmodel/change-bounds-operation-handler.ts +62 -0
  569. package/src/common/gmodel/change-routing-points-operation-handler.ts +40 -0
  570. package/src/common/gmodel/cut-operation-handler.ts +39 -0
  571. package/src/common/gmodel/delete-operation-handler.ts +121 -0
  572. package/src/common/gmodel/gmodel-create-edge-operation-handler.ts +64 -0
  573. package/src/common/gmodel/gmodel-create-node-operation-handler.ts +95 -0
  574. package/src/common/gmodel/gmodel-diagram-module.ts +76 -0
  575. package/src/common/gmodel/gmodel-operation-handler.ts +31 -0
  576. package/src/common/gmodel/index.ts +27 -0
  577. package/src/common/gmodel/paste-operation-handler.ts +127 -0
  578. package/src/common/gmodel/reconnect-edge-operation-handler.ts +56 -0
  579. package/src/common/index.ts +89 -0
  580. package/src/common/launch/glsp-server-launcher.ts +70 -0
  581. package/src/common/operations/compound-operation-handler.ts +40 -0
  582. package/src/common/operations/create-operation-handler.ts +49 -0
  583. package/src/common/operations/operation-action-handler.ts +93 -0
  584. package/src/common/operations/operation-handler-registry.spec.ts +50 -0
  585. package/src/common/operations/operation-handler-registry.ts +66 -0
  586. package/src/common/operations/operation-handler.ts +82 -0
  587. package/src/common/protocol/glsp-client-proxy.ts +65 -0
  588. package/src/common/protocol/glsp-server-listener.ts +39 -0
  589. package/src/common/protocol/glsp-server.spec.ts +150 -0
  590. package/src/common/protocol/glsp-server.ts +320 -0
  591. package/src/common/session/client-session-factory.spec.ts +60 -0
  592. package/src/common/session/client-session-factory.ts +70 -0
  593. package/src/common/session/client-session-initializer.ts +27 -0
  594. package/src/common/session/client-session-listener.ts +41 -0
  595. package/src/common/session/client-session-manager.spec.ts +82 -0
  596. package/src/common/session/client-session-manager.ts +182 -0
  597. package/src/common/session/client-session.ts +62 -0
  598. package/src/common/test/mock-util.ts +241 -0
  599. package/src/common/utils/args-util.ts +98 -0
  600. package/src/common/utils/client-options-util.ts +22 -0
  601. package/src/common/utils/glsp-server-error.ts +27 -0
  602. package/src/common/utils/layout-util.ts +164 -0
  603. package/src/common/utils/logger.ts +72 -0
  604. package/src/common/utils/promise-queue.spec.ts +138 -0
  605. package/src/common/utils/promise-queue.ts +103 -0
  606. package/src/common/utils/registry.spec.ts +223 -0
  607. package/src/common/utils/registry.ts +154 -0
  608. package/src/node/abstract-json-model-storage.ts +114 -0
  609. package/src/node/di/app-module.ts +102 -0
  610. package/src/node/di/winston-logger.ts +76 -0
  611. package/src/node/gmodel/gmodel-storage.ts +53 -0
  612. package/src/node/index.ts +23 -0
  613. package/src/node/launch/cli-parser.spec.ts +61 -0
  614. package/src/node/launch/cli-parser.ts +86 -0
  615. package/src/node/launch/socket-cli-parser.spec.ts +73 -0
  616. package/src/node/launch/socket-cli-parser.ts +52 -0
  617. package/src/node/launch/socket-server-launcher.spec.ts +68 -0
  618. package/src/node/launch/socket-server-launcher.ts +90 -0
@@ -0,0 +1,102 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2022-2023 STMicroelectronics and others.
3
+ *
4
+ * This program and the accompanying materials are made available under the
5
+ * terms of the Eclipse Public License v. 2.0 which is available at
6
+ * http://www.eclipse.org/legal/epl-2.0.
7
+ *
8
+ * This Source Code may also be made available under the following Secondary
9
+ * Licenses when the conditions for such availability set forth in the Eclipse
10
+ * Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ * with the GNU Classpath Exception which is available at
12
+ * https://www.gnu.org/software/classpath/license.html.
13
+ *
14
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
+ ********************************************************************************/
16
+ import { InitializeClientSessionParameters } from '@eclipse-glsp/protocol';
17
+ import { GLSPServer } from '../protocol/glsp-server';
18
+ import { GLSPServerListener } from '../protocol/glsp-server-listener';
19
+ import { ClientSession } from './client-session';
20
+ import { ClientSessionFactory } from './client-session-factory';
21
+ import { ClientSessionListener } from './client-session-listener';
22
+ export declare const ClientSessionManager: unique symbol;
23
+ /**
24
+ * The central component that manages the lifecycle of client sessions.
25
+ */
26
+ export interface ClientSessionManager {
27
+ /**
28
+ * Retries an existing (or created a new) {@link ClientSession} for the given id and diagram type.
29
+ * If a new session has been created all {@link ClientSessionListener}s are notified via the
30
+ * {@link ClientSessionListener.sessionCreated} method.
31
+ *
32
+ * @param clientSessionId The client session id (i.e. clientId).
33
+ * @param diagramType The diagram type.
34
+ * @returns The existing or newly constructed {@link ClientSession}.
35
+ *
36
+ * @throws {@link GLSPServerError} if another session with matching client id but different diagram type already exists.
37
+ */
38
+ getOrCreateClientSession(params: InitializeClientSessionParameters): ClientSession;
39
+ /**
40
+ * Retrieve an existing (i.e. currently active) {@link ClientSession} for the given client session id.
41
+ *
42
+ * @param clientSessionId The client session id.
43
+ * @returns The client session for the given id o `undefined` if no session is present with the given id.
44
+ */
45
+ getSession(clientSessionId: string): ClientSession | undefined;
46
+ /**
47
+ * Return all currently active {@link ClientSession}s for the given diagram type.
48
+ *
49
+ * @param diagramType The diagram type.
50
+ * @returns An array of all currently active {@link ClientSession}s.
51
+ */
52
+ getSessionsByType(diagramType: string): Array<ClientSession>;
53
+ /**
54
+ * Dispose the active client session with the given id. This marks the end of the lifecylce of a client session.
55
+ * After successfully disposal all {@link ClientSessionListener}s are notified via the
56
+ * {@link ClientSessionListener.sessionDisposed} method.
57
+ *
58
+ * @param clientSessionId The id of the client session which should be disposed.
59
+ * @returns `true` if a session with the given id was active and successfully disposed, `false` otherwise.
60
+ */
61
+ disposeClientSession(clientSessionId: string): boolean;
62
+ /**
63
+ * Register a new {@link ClientSessionListener}. Optionally the scope of the listener can be restricted to a set
64
+ * of client session ids. If no client session ids are passed, the listener will be registered globally and trigger
65
+ * for all client sessions.
66
+ *
67
+ * @param listener The listener that should be registered.
68
+ * @param clientSessionIds Scope of client ids
69
+ * @returns `true` if the listener was registered successfully, `false` otherwise
70
+ */
71
+ addListener(listener: ClientSessionListener, ...clientSessionIds: string[]): boolean;
72
+ /**
73
+ * Unregister a given {@link ClientSessionListener} from this client session manager.
74
+ *
75
+ * @param listener The listener that should be removed.
76
+ * @returns `false` if the listener is not registered, `true` if it was successfully unregistered.
77
+ */
78
+ removeListener(listener: ClientSessionListener): boolean;
79
+ /**
80
+ * Unregister all {@link ClientSessionListener} that haven been registered for the given scope of client session ids.
81
+ * If not client session ids are passed all listeners will be removed.
82
+ *
83
+ * @param clientSessionIds Scope (i.e. set) of client session ids.
84
+ */
85
+ removeListeners(...clientSessionIds: string[]): void;
86
+ }
87
+ export declare class DefaultClientSessionManager implements ClientSessionManager, GLSPServerListener {
88
+ sessionFactory: ClientSessionFactory;
89
+ protected clientSessions: Map<string, ClientSession>;
90
+ protected listeners: Map<string, ClientSessionListener[]>;
91
+ protected getListenersToNotify(clientSession: ClientSession, method: keyof ClientSessionListener): ClientSessionListener[];
92
+ getOrCreateClientSession(params: InitializeClientSessionParameters): ClientSession;
93
+ getSession(clientSessionId: string): ClientSession | undefined;
94
+ getSessionsByType(diagramType: string): ClientSession[];
95
+ disposeClientSession(clientSessionId: string): boolean;
96
+ addListener(listener: ClientSessionListener, ...clientSessionIds: string[]): boolean;
97
+ protected addSingleListener(clientSessionId: string, listener: ClientSessionListener): boolean;
98
+ removeListener(listener: ClientSessionListener): boolean;
99
+ removeListeners(...clientSessionIds: string[]): void;
100
+ serverShutDown(server: GLSPServer): void;
101
+ }
102
+ //# sourceMappingURL=client-session-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-session-manager.d.ts","sourceRoot":"","sources":["../../../src/common/session/client-session-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAClF,OAAO,EAAE,iCAAiC,EAAU,MAAM,wBAAwB,CAAC;AAEnF,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAEtE,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAElE,eAAO,MAAM,oBAAoB,eAAiC,CAAC;AAEnE;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACjC;;;;;;;;;;OAUG;IACH,wBAAwB,CAAC,MAAM,EAAE,iCAAiC,GAAG,aAAa,CAAC;IAEnF;;;;;OAKG;IACH,UAAU,CAAC,eAAe,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAAC;IAE/D;;;;;OAKG;IACH,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,KAAK,CAAC,aAAa,CAAC,CAAC;IAE7D;;;;;;;OAOG;IACH,oBAAoB,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO,CAAC;IAEvD;;;;;;;;OAQG;IACH,WAAW,CAAC,QAAQ,EAAE,qBAAqB,EAAE,GAAG,gBAAgB,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAErF;;;;;OAKG;IACH,cAAc,CAAC,QAAQ,EAAE,qBAAqB,GAAG,OAAO,CAAC;IAEzD;;;;;OAKG;IACH,eAAe,CAAC,GAAG,gBAAgB,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;CACxD;AAID,qBACa,2BAA4B,YAAW,oBAAoB,EAAE,kBAAkB;IAC1D,cAAc,EAAE,oBAAoB,CAAC;IAEnE,SAAS,CAAC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAoC;IACxF,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,qBAAqB,EAAE,CAAC,CAA8C;IAEvG,SAAS,CAAC,oBAAoB,CAAC,aAAa,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,qBAAqB,GAAG,qBAAqB,EAAE;IAM1H,wBAAwB,CAAC,MAAM,EAAE,iCAAiC,GAAG,aAAa;IAiBlF,UAAU,CAAC,eAAe,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAI9D,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,aAAa,EAAE;IAIvD,oBAAoB,CAAC,eAAe,EAAE,MAAM,GAAG,OAAO;IAYtD,WAAW,CAAC,QAAQ,EAAE,qBAAqB,EAAE,GAAG,gBAAgB,EAAE,MAAM,EAAE,GAAG,OAAO;IAOpF,SAAS,CAAC,iBAAiB,CAAC,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,qBAAqB,GAAG,OAAO;IAO9F,cAAc,CAAC,QAAQ,EAAE,qBAAqB,GAAG,OAAO;IAMxD,eAAe,CAAC,GAAG,gBAAgB,EAAE,MAAM,EAAE,GAAG,IAAI;IAQpD,cAAc,CAAC,MAAM,EAAE,UAAU,GAAG,IAAI;CAI3C"}
@@ -0,0 +1,116 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.DefaultClientSessionManager = exports.ClientSessionManager = void 0;
13
+ /********************************************************************************
14
+ * Copyright (c) 2022-2023 STMicroelectronics and others.
15
+ *
16
+ * This program and the accompanying materials are made available under the
17
+ * terms of the Eclipse Public License v. 2.0 which is available at
18
+ * http://www.eclipse.org/legal/epl-2.0.
19
+ *
20
+ * This Source Code may also be made available under the following Secondary
21
+ * Licenses when the conditions for such availability set forth in the Eclipse
22
+ * Public License v. 2.0 are satisfied: GNU General Public License, version 2
23
+ * with the GNU Classpath Exception which is available at
24
+ * https://www.gnu.org/software/classpath/license.html.
25
+ *
26
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
27
+ ********************************************************************************/
28
+ const protocol_1 = require("@eclipse-glsp/protocol");
29
+ const inversify_1 = require("inversify");
30
+ const glsp_server_error_1 = require("../utils/glsp-server-error");
31
+ const client_session_factory_1 = require("./client-session-factory");
32
+ exports.ClientSessionManager = Symbol('ClientSessionManager');
33
+ const ALL_CLIENT_IDS_KEY = '*';
34
+ let DefaultClientSessionManager = class DefaultClientSessionManager {
35
+ constructor() {
36
+ this.clientSessions = new Map();
37
+ this.listeners = new Map();
38
+ }
39
+ getListenersToNotify(clientSession, method) {
40
+ var _a, _b, _c, _d;
41
+ const globalListeners = (_b = (_a = this.listeners.get(ALL_CLIENT_IDS_KEY)) === null || _a === void 0 ? void 0 : _a.filter(listener => listener[method])) !== null && _b !== void 0 ? _b : [];
42
+ const sessionListeners = (_d = (_c = this.listeners.get(clientSession.id)) === null || _c === void 0 ? void 0 : _c.filter(listener => listener[method])) !== null && _d !== void 0 ? _d : [];
43
+ return [...globalListeners, ...sessionListeners];
44
+ }
45
+ getOrCreateClientSession(params) {
46
+ const { clientSessionId, diagramType } = params;
47
+ const session = this.clientSessions.get(clientSessionId);
48
+ if (session) {
49
+ if (session.diagramType !== diagramType) {
50
+ throw new glsp_server_error_1.GLSPServerError(`Could not initialize new session for diagram type '${diagramType}'
51
+ Another session with the same id for the diagram type ${session.diagramType} already exists`);
52
+ }
53
+ return session;
54
+ }
55
+ const newSession = this.sessionFactory.create(params);
56
+ this.clientSessions.set(clientSessionId, newSession);
57
+ this.getListenersToNotify(newSession, 'sessionCreated').forEach(listener => listener.sessionCreated(newSession));
58
+ return newSession;
59
+ }
60
+ getSession(clientSessionId) {
61
+ return this.clientSessions.get(clientSessionId);
62
+ }
63
+ getSessionsByType(diagramType) {
64
+ return Array.from(this.clientSessions.values()).filter(session => session.diagramType === diagramType);
65
+ }
66
+ disposeClientSession(clientSessionId) {
67
+ const session = this.clientSessions.get(clientSessionId);
68
+ if (session) {
69
+ session.dispose();
70
+ this.getListenersToNotify(session, 'sessionDisposed').forEach(listener => listener.sessionDisposed(session));
71
+ this.clientSessions.delete(clientSessionId);
72
+ this.listeners.delete(clientSessionId);
73
+ return true;
74
+ }
75
+ return false;
76
+ }
77
+ addListener(listener, ...clientSessionIds) {
78
+ if (clientSessionIds.length === 0) {
79
+ this.addSingleListener(ALL_CLIENT_IDS_KEY, listener);
80
+ }
81
+ return clientSessionIds.map(clientId => this.addSingleListener(clientId, listener)).every(added => added);
82
+ }
83
+ addSingleListener(clientSessionId, listener) {
84
+ var _a;
85
+ const listeners = (_a = this.listeners.get(clientSessionId)) !== null && _a !== void 0 ? _a : [];
86
+ listeners.push(listener);
87
+ this.listeners.set(clientSessionId, listeners);
88
+ return true;
89
+ }
90
+ removeListener(listener) {
91
+ return Array.from(this.listeners.values())
92
+ .map(listeners => (0, protocol_1.remove)(listeners, listener))
93
+ .every(removed => removed);
94
+ }
95
+ removeListeners(...clientSessionIds) {
96
+ if (clientSessionIds.length === 0) {
97
+ this.listeners.clear();
98
+ }
99
+ else {
100
+ clientSessionIds.forEach(id => this.listeners.delete(id));
101
+ }
102
+ }
103
+ serverShutDown(server) {
104
+ Array.from(this.clientSessions.keys()).forEach(id => this.disposeClientSession(id));
105
+ this.listeners.clear();
106
+ }
107
+ };
108
+ __decorate([
109
+ (0, inversify_1.inject)(client_session_factory_1.ClientSessionFactory),
110
+ __metadata("design:type", Object)
111
+ ], DefaultClientSessionManager.prototype, "sessionFactory", void 0);
112
+ DefaultClientSessionManager = __decorate([
113
+ (0, inversify_1.injectable)()
114
+ ], DefaultClientSessionManager);
115
+ exports.DefaultClientSessionManager = DefaultClientSessionManager;
116
+ //# sourceMappingURL=client-session-manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-session-manager.js","sourceRoot":"","sources":["../../../src/common/session/client-session-manager.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=client-session-manager.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-session-manager.spec.d.ts","sourceRoot":"","sources":["../../../src/common/session/client-session-manager.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,74 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /********************************************************************************
4
+ * Copyright (c) 2022-2023 STMicroelectronics and others.
5
+ *
6
+ * This program and the accompanying materials are made available under the
7
+ * terms of the Eclipse Public License v. 2.0 which is available at
8
+ * http://www.eclipse.org/legal/epl-2.0.
9
+ *
10
+ * This Source Code may also be made available under the following Secondary
11
+ * Licenses when the conditions for such availability set forth in the Eclipse
12
+ * Public License v. 2.0 are satisfied: GNU General Public License, version 2
13
+ * with the GNU Classpath Exception which is available at
14
+ * https://www.gnu.org/software/classpath/license.html.
15
+ *
16
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
17
+ ********************************************************************************/
18
+ const inversify_1 = require("inversify");
19
+ const mock = require("../test/mock-util");
20
+ const logger_1 = require("../utils/logger");
21
+ const client_session_factory_1 = require("./client-session-factory");
22
+ const client_session_manager_1 = require("./client-session-manager");
23
+ const chai_1 = require("chai");
24
+ const sinon = require("sinon");
25
+ describe('test DefaultClientSessionManager', () => {
26
+ const testSession = mock.createClientSession('myId', 'myDiagram');
27
+ const testSessionListener = new mock.StubClientSessionListener();
28
+ const sessionFactory = new mock.StubClientSessionFactory();
29
+ sinon.stub(sessionFactory, 'create').returns(testSession);
30
+ const container = new inversify_1.Container();
31
+ container.load(new inversify_1.ContainerModule(bind => {
32
+ bind(logger_1.Logger).toConstantValue(new mock.StubLogger());
33
+ bind(client_session_factory_1.ClientSessionFactory).toConstantValue(sessionFactory);
34
+ }));
35
+ const sessionManager = container.resolve(client_session_manager_1.DefaultClientSessionManager);
36
+ it('add listener', () => {
37
+ (0, chai_1.expect)(sessionManager.addListener(testSessionListener, testSession.id)).true;
38
+ });
39
+ it('add create client session', () => {
40
+ // Mock setup
41
+ const listener_create = sinon.spy(testSessionListener, 'sessionCreated');
42
+ // Test execution
43
+ const createdSession = sessionManager.getOrCreateClientSession({
44
+ clientSessionId: testSession.id,
45
+ diagramType: testSession.diagramType
46
+ });
47
+ (0, chai_1.expect)(createdSession).to.not.be.undefined;
48
+ (0, chai_1.expect)(createdSession.id).to.be.equal(testSession.id);
49
+ (0, chai_1.expect)(createdSession.diagramType).to.be.equal(testSession.diagramType);
50
+ const retrievedSession = sessionManager.getSession(testSession.id);
51
+ (0, chai_1.expect)(retrievedSession).to.not.be.undefined;
52
+ (0, chai_1.expect)(retrievedSession).to.be.equal(createdSession);
53
+ (0, chai_1.expect)(listener_create.calledWith(testSession));
54
+ });
55
+ it('get sessions by type', () => {
56
+ const clientSessions = sessionManager.getSessionsByType(testSession.diagramType);
57
+ (0, chai_1.expect)(clientSessions.length).to.be.equal(1);
58
+ (0, chai_1.expect)(clientSessions[0]).to.be.equal(testSession);
59
+ });
60
+ it('get sessions by type that does no exist', async () => {
61
+ const clientSessions = sessionManager.getSessionsByType('wrongType');
62
+ (0, chai_1.expect)(clientSessions.length).to.be.equal(0);
63
+ });
64
+ it('dispose client session', () => {
65
+ // Mock setup
66
+ const listener_dispose = sinon.spy(testSessionListener, 'sessionDisposed');
67
+ // Test execution
68
+ (0, chai_1.expect)(sessionManager.disposeClientSession(testSession.id)).to.be.equal(true);
69
+ const session = sessionManager.getSession(testSession.id);
70
+ (0, chai_1.expect)(session).to.be.undefined;
71
+ (0, chai_1.expect)(listener_dispose.calledWith(testSession));
72
+ });
73
+ });
74
+ //# sourceMappingURL=client-session-manager.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-session-manager.spec.js","sourceRoot":"","sources":["../../../src/common/session/client-session-manager.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2022-2023 STMicroelectronics and others.
3
+ *
4
+ * This program and the accompanying materials are made available under the
5
+ * terms of the Eclipse Public License v. 2.0 which is available at
6
+ * http://www.eclipse.org/legal/epl-2.0.
7
+ *
8
+ * This Source Code may also be made available under the following Secondary
9
+ * Licenses when the conditions for such availability set forth in the Eclipse
10
+ * Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ * with the GNU Classpath Exception which is available at
12
+ * https://www.gnu.org/software/classpath/license.html.
13
+ *
14
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
+ ********************************************************************************/
16
+ import { Disposable } from '@eclipse-glsp/protocol';
17
+ import { Container } from 'inversify';
18
+ import { ActionDispatcher } from '../actions/action-dispatcher';
19
+ /**
20
+ * Stores the core information that the `GLSPServer` needs to know about a client session.
21
+ * When handling session specific requests (i.e. `ActionMessage`s the server retrieves the corresponding
22
+ * client session from the `ClientSessionManager` and delegates the action message to its
23
+ * {@link ActionDispatcher};
24
+ */
25
+ export interface ClientSession extends Disposable {
26
+ /**
27
+ * The id of the client session.
28
+ */
29
+ readonly id: string;
30
+ /**
31
+ * The diagram type of the client session.
32
+ */
33
+ readonly diagramType: string;
34
+ /**
35
+ * The action dispatcher of this diagram type. The action dispatcher is typically created by the session
36
+ * specific injector and is basically the entrypoint to the session specific injection context.
37
+ */
38
+ readonly actionDispatcher: ActionDispatcher;
39
+ /**
40
+ * The session specific {@link Container}.
41
+ */
42
+ readonly container: Container;
43
+ }
44
+ export declare class DefaultClientSession implements ClientSession {
45
+ readonly id: string;
46
+ readonly diagramType: string;
47
+ readonly actionDispatcher: ActionDispatcher;
48
+ readonly container: Container;
49
+ constructor(id: string, diagramType: string, actionDispatcher: ActionDispatcher, container: Container);
50
+ dispose(): void;
51
+ }
52
+ //# sourceMappingURL=client-session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-session.d.ts","sourceRoot":"","sources":["../../../src/common/session/client-session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAClF,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAC;AAEhE;;;;;GAKG;AACH,MAAM,WAAW,aAAc,SAAQ,UAAU;IAC7C;;OAEG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAE7B;;;OAGG;IACH,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAE5C;;OAEG;IACH,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;CACjC;AAED,qBAAa,oBAAqB,YAAW,aAAa;IAElD,QAAQ,CAAC,EAAE,EAAE,MAAM;IACnB,QAAQ,CAAC,WAAW,EAAE,MAAM;IAC5B,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB;IAC3C,QAAQ,CAAC,SAAS,EAAE,SAAS;gBAHpB,EAAE,EAAE,MAAM,EACV,WAAW,EAAE,MAAM,EACnB,gBAAgB,EAAE,gBAAgB,EAClC,SAAS,EAAE,SAAS;IAGjC,OAAO,IAAI,IAAI;CAKlB"}
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DefaultClientSession = void 0;
4
+ /********************************************************************************
5
+ * Copyright (c) 2022-2023 STMicroelectronics and others.
6
+ *
7
+ * This program and the accompanying materials are made available under the
8
+ * terms of the Eclipse Public License v. 2.0 which is available at
9
+ * http://www.eclipse.org/legal/epl-2.0.
10
+ *
11
+ * This Source Code may also be made available under the following Secondary
12
+ * Licenses when the conditions for such availability set forth in the Eclipse
13
+ * Public License v. 2.0 are satisfied: GNU General Public License, version 2
14
+ * with the GNU Classpath Exception which is available at
15
+ * https://www.gnu.org/software/classpath/license.html.
16
+ *
17
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
18
+ ********************************************************************************/
19
+ const protocol_1 = require("@eclipse-glsp/protocol");
20
+ class DefaultClientSession {
21
+ constructor(id, diagramType, actionDispatcher, container) {
22
+ this.id = id;
23
+ this.diagramType = diagramType;
24
+ this.actionDispatcher = actionDispatcher;
25
+ this.container = container;
26
+ }
27
+ dispose() {
28
+ if (protocol_1.Disposable.is(this.actionDispatcher)) {
29
+ this.actionDispatcher.dispose();
30
+ }
31
+ }
32
+ }
33
+ exports.DefaultClientSession = DefaultClientSession;
34
+ //# sourceMappingURL=client-session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client-session.js","sourceRoot":"","sources":["../../../src/common/session/client-session.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;kFAckF;AAClF,qDAAoD;AAiCpD,MAAa,oBAAoB;IAC7B,YACa,EAAU,EACV,WAAmB,EACnB,gBAAkC,EAClC,SAAoB;QAHpB,OAAE,GAAF,EAAE,CAAQ;QACV,gBAAW,GAAX,WAAW,CAAQ;QACnB,qBAAgB,GAAhB,gBAAgB,CAAkB;QAClC,cAAS,GAAT,SAAS,CAAW;IAC9B,CAAC;IAEJ,OAAO;QACH,IAAI,qBAAU,CAAC,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,EAAE;YACtC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;SACnC;IACL,CAAC;CACJ;AAbD,oDAaC"}
@@ -0,0 +1,117 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2022-2023 STMicroelectronics and others.
3
+ *
4
+ * This program and the accompanying materials are made available under the
5
+ * terms of the Eclipse Public License v. 2.0 which is available at
6
+ * http://www.eclipse.org/legal/epl-2.0.
7
+ *
8
+ * This Source Code may also be made available under the following Secondary
9
+ * Licenses when the conditions for such availability set forth in the Eclipse
10
+ * Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ * with the GNU Classpath Exception which is available at
12
+ * https://www.gnu.org/software/classpath/license.html.
13
+ *
14
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
+ ********************************************************************************/
16
+ import { GEdge, GModelElement, GModelElementConstructor, GNode } from '@eclipse-glsp/graph';
17
+ import { Action, ActionMessage, Args, CreateNodeOperation, EdgeTypeHint, InitializeClientSessionParameters, MaybeArray, Point, RequestEditValidationAction, ShapeTypeHint, ValidationStatus } from '@eclipse-glsp/protocol';
18
+ import { Container } from 'inversify';
19
+ import { MessageConnection } from 'vscode-jsonrpc';
20
+ import { ActionDispatcher } from '../actions/action-dispatcher';
21
+ import { ActionHandler, ActionHandlerFactory } from '../actions/action-handler';
22
+ import { Command } from '../command/command';
23
+ import { DiagramConfiguration, ServerLayoutKind } from '../diagram/diagram-configuration';
24
+ import { ContextEditValidator } from '../features/directediting/context-edit-validator';
25
+ import { LabelEditValidator } from '../features/directediting/label-edit-validator';
26
+ import { GModelCreateEdgeOperationHandler, GModelCreateNodeOperationHandler } from '../gmodel/index';
27
+ import { JsonRpcGLSPClientProxy } from '../protocol/glsp-client-proxy';
28
+ import { GLSPServer } from '../protocol/glsp-server';
29
+ import { GLSPServerListener } from '../protocol/glsp-server-listener';
30
+ import { ClientSession } from '../session/client-session';
31
+ import { ClientSessionFactory } from '../session/client-session-factory';
32
+ import { ClientSessionInitializer } from '../session/client-session-initializer';
33
+ import { ClientSessionListener } from '../session/client-session-listener';
34
+ import { ClientSessionManager } from '../session/client-session-manager';
35
+ import { Logger, LogLevel } from '../utils/logger';
36
+ export declare function delay(ms: number): Promise<void>;
37
+ export declare function createClientSession(id: string, diagramType: string, container?: Container, actionDispatcher?: StubActionDispatcher): ClientSession;
38
+ export declare class StubActionHandler implements ActionHandler {
39
+ actionKinds: string[];
40
+ constructor(actionKinds: string[]);
41
+ execute(action: Action): Action[];
42
+ }
43
+ export declare class StubCreateNodeOperationHandler extends GModelCreateNodeOperationHandler {
44
+ readonly label: string;
45
+ elementTypeIds: string[];
46
+ constructor(label: string);
47
+ createNode(operation: CreateNodeOperation, relativeLocation?: Point): GNode | undefined;
48
+ }
49
+ export declare class StubCreateEdgeOperationHandler extends GModelCreateEdgeOperationHandler {
50
+ readonly label: string;
51
+ elementTypeIds: string[];
52
+ constructor(label: string);
53
+ createEdge(source: GModelElement, target: GModelElement): GEdge | undefined;
54
+ }
55
+ export declare class StubActionDispatcher implements ActionDispatcher {
56
+ dispatchAfterNextUpdate(...actions: MaybeArray<Action[]>): void;
57
+ dispatch(action: Action): Promise<void>;
58
+ dispatchAll(...actions: MaybeArray<Action>[]): Promise<void>;
59
+ }
60
+ export declare class StubClientSessionFactory implements ClientSessionFactory {
61
+ create(params: InitializeClientSessionParameters): ClientSession;
62
+ }
63
+ export declare class StubClientSessionManager implements ClientSessionManager {
64
+ getOrCreateClientSession(params: InitializeClientSessionParameters): ClientSession;
65
+ getSession(clientSessionId: string): ClientSession | undefined;
66
+ getSessionsByType(diagramType: string): ClientSession[];
67
+ disposeClientSession(clientSessionId: string): boolean;
68
+ addListener(listener: ClientSessionListener, ...clientSessionIds: string[]): boolean;
69
+ removeListener(listener: ClientSessionListener): boolean;
70
+ removeListeners(...clientSessionIds: string[]): void;
71
+ }
72
+ export declare class StubLogger extends Logger {
73
+ logLevel: LogLevel;
74
+ caller: undefined;
75
+ info(message: string, ...params: any[]): void;
76
+ warn(message: string, ...params: any[]): void;
77
+ error(message: string, ...params: any[]): void;
78
+ debug(message: string, ...params: any[]): void;
79
+ }
80
+ export declare class StubClientSessionListener implements ClientSessionListener {
81
+ sessionCreated(clientSession: ClientSession): void;
82
+ sessionDisposed(clientSession: ClientSession): void;
83
+ }
84
+ export declare class StubGLSPClientProxy implements JsonRpcGLSPClientProxy {
85
+ connect(connection: MessageConnection): void;
86
+ process(message: ActionMessage<Action>): void;
87
+ }
88
+ export declare class StubGLSPServerListener implements GLSPServerListener {
89
+ serverInitialized(server: GLSPServer): void;
90
+ serverShutDown(server: GLSPServer): void;
91
+ }
92
+ export declare class StubDiagramConfiguration implements DiagramConfiguration {
93
+ typeMapping: Map<string, GModelElementConstructor<GModelElement>>;
94
+ shapeTypeHints: ShapeTypeHint[];
95
+ edgeTypeHints: EdgeTypeHint[];
96
+ layoutKind: ServerLayoutKind;
97
+ needsClientLayout: boolean;
98
+ animatedUpdate: boolean;
99
+ }
100
+ export declare class TestLabelEditValidator extends LabelEditValidator {
101
+ validate(label: string, element: GModelElement): ValidationStatus;
102
+ }
103
+ export declare class TestContextEditValidator implements ContextEditValidator {
104
+ get contextId(): string;
105
+ validate(action: RequestEditValidationAction): ValidationStatus;
106
+ }
107
+ export declare const stubActionHandlerFactory: ActionHandlerFactory;
108
+ export declare class StubClientSessionInitializer implements ClientSessionInitializer {
109
+ initialize(args?: Args): void;
110
+ }
111
+ export declare class StubCommand implements Command {
112
+ execute(): void;
113
+ undo(): void;
114
+ redo(): void;
115
+ canUndo?(): boolean;
116
+ }
117
+ //# sourceMappingURL=mock-util.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mock-util.d.ts","sourceRoot":"","sources":["../../../src/common/test/mock-util.ts"],"names":[],"mappings":"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"}