@eclipse-glsp/server 1.1.0-next.3d7585d.42

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 (593) 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 +37 -0
  54. package/lib/common/command/command-stack.d.ts.map +1 -0
  55. package/lib/common/command/command-stack.js +48 -0
  56. package/lib/common/command/command-stack.js.map +1 -0
  57. package/lib/common/command/command.d.ts +37 -0
  58. package/lib/common/command/command.d.ts.map +1 -0
  59. package/lib/common/command/command.js +18 -0
  60. package/lib/common/command/command.js.map +1 -0
  61. package/lib/common/di/binding-target.d.ts +73 -0
  62. package/lib/common/di/binding-target.d.ts.map +1 -0
  63. package/lib/common/di/binding-target.js +143 -0
  64. package/lib/common/di/binding-target.js.map +1 -0
  65. package/lib/common/di/binding-target.spec.d.ts +2 -0
  66. package/lib/common/di/binding-target.spec.d.ts.map +1 -0
  67. package/lib/common/di/binding-target.spec.js +121 -0
  68. package/lib/common/di/binding-target.spec.js.map +1 -0
  69. package/lib/common/di/client-session-module.d.ts +19 -0
  70. package/lib/common/di/client-session-module.d.ts.map +1 -0
  71. package/lib/common/di/client-session-module.js +34 -0
  72. package/lib/common/di/client-session-module.js.map +1 -0
  73. package/lib/common/di/diagram-module.d.ts +127 -0
  74. package/lib/common/di/diagram-module.d.ts.map +1 -0
  75. package/lib/common/di/diagram-module.js +283 -0
  76. package/lib/common/di/diagram-module.js.map +1 -0
  77. package/lib/common/di/glsp-module.d.ts +47 -0
  78. package/lib/common/di/glsp-module.d.ts.map +1 -0
  79. package/lib/common/di/glsp-module.js +59 -0
  80. package/lib/common/di/glsp-module.js.map +1 -0
  81. package/lib/common/di/multi-binding.d.ts +41 -0
  82. package/lib/common/di/multi-binding.d.ts.map +1 -0
  83. package/lib/common/di/multi-binding.js +82 -0
  84. package/lib/common/di/multi-binding.js.map +1 -0
  85. package/lib/common/di/multi-bindings.spec.d.ts +2 -0
  86. package/lib/common/di/multi-bindings.spec.d.ts.map +1 -0
  87. package/lib/common/di/multi-bindings.spec.js +137 -0
  88. package/lib/common/di/multi-bindings.spec.js.map +1 -0
  89. package/lib/common/di/server-module.d.ts +73 -0
  90. package/lib/common/di/server-module.d.ts.map +1 -0
  91. package/lib/common/di/server-module.js +103 -0
  92. package/lib/common/di/server-module.js.map +1 -0
  93. package/lib/common/di/service-identifiers.d.ts +29 -0
  94. package/lib/common/di/service-identifiers.d.ts.map +1 -0
  95. package/lib/common/di/service-identifiers.js +14 -0
  96. package/lib/common/di/service-identifiers.js.map +1 -0
  97. package/lib/common/diagram/diagram-configuration.d.ts +89 -0
  98. package/lib/common/diagram/diagram-configuration.d.ts.map +1 -0
  99. package/lib/common/diagram/diagram-configuration.js +30 -0
  100. package/lib/common/diagram/diagram-configuration.js.map +1 -0
  101. package/lib/common/diagram/request-type-hints-action-handler.d.ts +25 -0
  102. package/lib/common/diagram/request-type-hints-action-handler.d.ts.map +1 -0
  103. package/lib/common/diagram/request-type-hints-action-handler.js +53 -0
  104. package/lib/common/diagram/request-type-hints-action-handler.js.map +1 -0
  105. package/lib/common/diagram/request-type-hints-action-handler.spec.d.ts +2 -0
  106. package/lib/common/diagram/request-type-hints-action-handler.spec.d.ts.map +1 -0
  107. package/lib/common/diagram/request-type-hints-action-handler.spec.js +57 -0
  108. package/lib/common/diagram/request-type-hints-action-handler.spec.js.map +1 -0
  109. package/lib/common/features/clipboard/request-clipboard-data-action-handler.d.ts +26 -0
  110. package/lib/common/features/clipboard/request-clipboard-data-action-handler.d.ts.map +1 -0
  111. package/lib/common/features/clipboard/request-clipboard-data-action-handler.js +61 -0
  112. package/lib/common/features/clipboard/request-clipboard-data-action-handler.js.map +1 -0
  113. package/lib/common/features/contextactions/command-palette-action-provider.d.ts +63 -0
  114. package/lib/common/features/contextactions/command-palette-action-provider.d.ts.map +1 -0
  115. package/lib/common/features/contextactions/command-palette-action-provider.js +72 -0
  116. package/lib/common/features/contextactions/command-palette-action-provider.js.map +1 -0
  117. package/lib/common/features/contextactions/context-actions-provider-registry.d.ts +12 -0
  118. package/lib/common/features/contextactions/context-actions-provider-registry.d.ts.map +1 -0
  119. package/lib/common/features/contextactions/context-actions-provider-registry.js +70 -0
  120. package/lib/common/features/contextactions/context-actions-provider-registry.js.map +1 -0
  121. package/lib/common/features/contextactions/context-actions-provider-registry.spec.d.ts +2 -0
  122. package/lib/common/features/contextactions/context-actions-provider-registry.spec.d.ts.map +1 -0
  123. package/lib/common/features/contextactions/context-actions-provider-registry.spec.js +34 -0
  124. package/lib/common/features/contextactions/context-actions-provider-registry.spec.js.map +1 -0
  125. package/lib/common/features/contextactions/context-actions-provider.d.ts +34 -0
  126. package/lib/common/features/contextactions/context-actions-provider.d.ts.map +1 -0
  127. package/lib/common/features/contextactions/context-actions-provider.js +5 -0
  128. package/lib/common/features/contextactions/context-actions-provider.js.map +1 -0
  129. package/lib/common/features/contextactions/context-menu-item-provider.d.ts +43 -0
  130. package/lib/common/features/contextactions/context-menu-item-provider.d.ts.map +1 -0
  131. package/lib/common/features/contextactions/context-menu-item-provider.js +36 -0
  132. package/lib/common/features/contextactions/context-menu-item-provider.js.map +1 -0
  133. package/lib/common/features/contextactions/request-context-actions-handler.d.ts +24 -0
  134. package/lib/common/features/contextactions/request-context-actions-handler.d.ts.map +1 -0
  135. package/lib/common/features/contextactions/request-context-actions-handler.js +53 -0
  136. package/lib/common/features/contextactions/request-context-actions-handler.js.map +1 -0
  137. package/lib/common/features/contextactions/request-context-actions-handler.spec.d.ts +2 -0
  138. package/lib/common/features/contextactions/request-context-actions-handler.spec.d.ts.map +1 -0
  139. package/lib/common/features/contextactions/request-context-actions-handler.spec.js +63 -0
  140. package/lib/common/features/contextactions/request-context-actions-handler.spec.js.map +1 -0
  141. package/lib/common/features/contextactions/tool-palette-item-provider.d.ts +50 -0
  142. package/lib/common/features/contextactions/tool-palette-item-provider.d.ts.map +1 -0
  143. package/lib/common/features/contextactions/tool-palette-item-provider.js +88 -0
  144. package/lib/common/features/contextactions/tool-palette-item-provider.js.map +1 -0
  145. package/lib/common/features/contextactions/tool-palette-item-provider.spec.d.ts +2 -0
  146. package/lib/common/features/contextactions/tool-palette-item-provider.spec.d.ts.map +1 -0
  147. package/lib/common/features/contextactions/tool-palette-item-provider.spec.js +48 -0
  148. package/lib/common/features/contextactions/tool-palette-item-provider.spec.js.map +1 -0
  149. package/lib/common/features/directediting/context-edit-validator-registry.d.ts +14 -0
  150. package/lib/common/features/directediting/context-edit-validator-registry.d.ts.map +1 -0
  151. package/lib/common/features/directediting/context-edit-validator-registry.js +57 -0
  152. package/lib/common/features/directediting/context-edit-validator-registry.js.map +1 -0
  153. package/lib/common/features/directediting/context-edit-validator-registry.spec.d.ts +2 -0
  154. package/lib/common/features/directediting/context-edit-validator-registry.spec.d.ts.map +1 -0
  155. package/lib/common/features/directediting/context-edit-validator-registry.spec.js +44 -0
  156. package/lib/common/features/directediting/context-edit-validator-registry.spec.js.map +1 -0
  157. package/lib/common/features/directediting/context-edit-validator.d.ts +25 -0
  158. package/lib/common/features/directediting/context-edit-validator.d.ts.map +1 -0
  159. package/lib/common/features/directediting/context-edit-validator.js +40 -0
  160. package/lib/common/features/directediting/context-edit-validator.js.map +1 -0
  161. package/lib/common/features/directediting/label-edit-validator.d.ts +32 -0
  162. package/lib/common/features/directediting/label-edit-validator.d.ts.map +1 -0
  163. package/lib/common/features/directediting/label-edit-validator.js +21 -0
  164. package/lib/common/features/directediting/label-edit-validator.js.map +1 -0
  165. package/lib/common/features/directediting/request-edit-validation-handler.d.ts +26 -0
  166. package/lib/common/features/directediting/request-edit-validation-handler.d.ts.map +1 -0
  167. package/lib/common/features/directediting/request-edit-validation-handler.js +61 -0
  168. package/lib/common/features/directediting/request-edit-validation-handler.js.map +1 -0
  169. package/lib/common/features/directediting/request-edit-validation-handler.spec.d.ts +2 -0
  170. package/lib/common/features/directediting/request-edit-validation-handler.spec.d.ts.map +1 -0
  171. package/lib/common/features/directediting/request-edit-validation-handler.spec.js +97 -0
  172. package/lib/common/features/directediting/request-edit-validation-handler.spec.js.map +1 -0
  173. package/lib/common/features/layout/layout-engine.d.ts +29 -0
  174. package/lib/common/features/layout/layout-engine.d.ts.map +1 -0
  175. package/lib/common/features/layout/layout-engine.js +20 -0
  176. package/lib/common/features/layout/layout-engine.js.map +1 -0
  177. package/lib/common/features/layout/layout-operation-handler.d.ts +28 -0
  178. package/lib/common/features/layout/layout-operation-handler.d.ts.map +1 -0
  179. package/lib/common/features/layout/layout-operation-handler.js +66 -0
  180. package/lib/common/features/layout/layout-operation-handler.js.map +1 -0
  181. package/lib/common/features/model/gmodel-factory.d.ts +39 -0
  182. package/lib/common/features/model/gmodel-factory.d.ts.map +1 -0
  183. package/lib/common/features/model/gmodel-factory.js +39 -0
  184. package/lib/common/features/model/gmodel-factory.js.map +1 -0
  185. package/lib/common/features/model/gmodel-index.d.ts +107 -0
  186. package/lib/common/features/model/gmodel-index.d.ts.map +1 -0
  187. package/lib/common/features/model/gmodel-index.js +193 -0
  188. package/lib/common/features/model/gmodel-index.js.map +1 -0
  189. package/lib/common/features/model/gmodel-serializer.d.ts +67 -0
  190. package/lib/common/features/model/gmodel-serializer.d.ts.map +1 -0
  191. package/lib/common/features/model/gmodel-serializer.js +143 -0
  192. package/lib/common/features/model/gmodel-serializer.js.map +1 -0
  193. package/lib/common/features/model/gmodel-serializer.spec.d.ts +2 -0
  194. package/lib/common/features/model/gmodel-serializer.spec.d.ts.map +1 -0
  195. package/lib/common/features/model/gmodel-serializer.spec.js +124 -0
  196. package/lib/common/features/model/gmodel-serializer.spec.js.map +1 -0
  197. package/lib/common/features/model/model-state.d.ts +53 -0
  198. package/lib/common/features/model/model-state.d.ts.map +1 -0
  199. package/lib/common/features/model/model-state.js +75 -0
  200. package/lib/common/features/model/model-state.js.map +1 -0
  201. package/lib/common/features/model/model-submission-handler.d.ts +56 -0
  202. package/lib/common/features/model/model-submission-handler.d.ts.map +1 -0
  203. package/lib/common/features/model/model-submission-handler.js +97 -0
  204. package/lib/common/features/model/model-submission-handler.js.map +1 -0
  205. package/lib/common/features/model/request-model-action-handler.d.ts +37 -0
  206. package/lib/common/features/model/request-model-action-handler.d.ts.map +1 -0
  207. package/lib/common/features/model/request-model-action-handler.js +83 -0
  208. package/lib/common/features/model/request-model-action-handler.js.map +1 -0
  209. package/lib/common/features/model/save-model-action-handler.d.ts +26 -0
  210. package/lib/common/features/model/save-model-action-handler.d.ts.map +1 -0
  211. package/lib/common/features/model/save-model-action-handler.js +54 -0
  212. package/lib/common/features/model/save-model-action-handler.js.map +1 -0
  213. package/lib/common/features/model/source-model-storage.d.ts +47 -0
  214. package/lib/common/features/model/source-model-storage.d.ts.map +1 -0
  215. package/lib/common/features/model/source-model-storage.js +5 -0
  216. package/lib/common/features/model/source-model-storage.js.map +1 -0
  217. package/lib/common/features/navigation/json-opener-options.d.ts +36 -0
  218. package/lib/common/features/navigation/json-opener-options.d.ts.map +1 -0
  219. package/lib/common/features/navigation/json-opener-options.js +60 -0
  220. package/lib/common/features/navigation/json-opener-options.js.map +1 -0
  221. package/lib/common/features/navigation/navigation-target-provider-registry.d.ts +12 -0
  222. package/lib/common/features/navigation/navigation-target-provider-registry.d.ts.map +1 -0
  223. package/lib/common/features/navigation/navigation-target-provider-registry.js +47 -0
  224. package/lib/common/features/navigation/navigation-target-provider-registry.js.map +1 -0
  225. package/lib/common/features/navigation/navigation-target-provider.d.ts +48 -0
  226. package/lib/common/features/navigation/navigation-target-provider.d.ts.map +1 -0
  227. package/lib/common/features/navigation/navigation-target-provider.js +5 -0
  228. package/lib/common/features/navigation/navigation-target-provider.js.map +1 -0
  229. package/lib/common/features/navigation/navigation-target-resolution.d.ts +23 -0
  230. package/lib/common/features/navigation/navigation-target-resolution.d.ts.map +1 -0
  231. package/lib/common/features/navigation/navigation-target-resolution.js +12 -0
  232. package/lib/common/features/navigation/navigation-target-resolution.js.map +1 -0
  233. package/lib/common/features/navigation/navigation-target-resolver.d.ts +31 -0
  234. package/lib/common/features/navigation/navigation-target-resolver.d.ts.map +1 -0
  235. package/lib/common/features/navigation/navigation-target-resolver.js +49 -0
  236. package/lib/common/features/navigation/navigation-target-resolver.js.map +1 -0
  237. package/lib/common/features/navigation/request-navigation-targets-action-handler.d.ts +24 -0
  238. package/lib/common/features/navigation/request-navigation-targets-action-handler.d.ts.map +1 -0
  239. package/lib/common/features/navigation/request-navigation-targets-action-handler.js +55 -0
  240. package/lib/common/features/navigation/request-navigation-targets-action-handler.js.map +1 -0
  241. package/lib/common/features/navigation/resolve-navigation-targets-action-handler.d.ts +26 -0
  242. package/lib/common/features/navigation/resolve-navigation-targets-action-handler.d.ts.map +1 -0
  243. package/lib/common/features/navigation/resolve-navigation-targets-action-handler.js +59 -0
  244. package/lib/common/features/navigation/resolve-navigation-targets-action-handler.js.map +1 -0
  245. package/lib/common/features/popup/popup-model-factory.d.ts +36 -0
  246. package/lib/common/features/popup/popup-model-factory.d.ts.map +1 -0
  247. package/lib/common/features/popup/popup-model-factory.js +20 -0
  248. package/lib/common/features/popup/popup-model-factory.js.map +1 -0
  249. package/lib/common/features/popup/request-popup-model-action-handler.d.ts +31 -0
  250. package/lib/common/features/popup/request-popup-model-action-handler.d.ts.map +1 -0
  251. package/lib/common/features/popup/request-popup-model-action-handler.js +77 -0
  252. package/lib/common/features/popup/request-popup-model-action-handler.js.map +1 -0
  253. package/lib/common/features/validation/model-validator.d.ts +33 -0
  254. package/lib/common/features/validation/model-validator.d.ts.map +1 -0
  255. package/lib/common/features/validation/model-validator.js +5 -0
  256. package/lib/common/features/validation/model-validator.js.map +1 -0
  257. package/lib/common/features/validation/request-markers-handler.d.ts +11 -0
  258. package/lib/common/features/validation/request-markers-handler.d.ts.map +1 -0
  259. package/lib/common/features/validation/request-markers-handler.js +70 -0
  260. package/lib/common/features/validation/request-markers-handler.js.map +1 -0
  261. package/lib/common/gmodel/apply-label-edit-operation-handler.d.ts +9 -0
  262. package/lib/common/gmodel/apply-label-edit-operation-handler.d.ts.map +1 -0
  263. package/lib/common/gmodel/apply-label-edit-operation-handler.js +55 -0
  264. package/lib/common/gmodel/apply-label-edit-operation-handler.js.map +1 -0
  265. package/lib/common/gmodel/apply-label-edit-operation-handler.spec.d.ts +2 -0
  266. package/lib/common/gmodel/apply-label-edit-operation-handler.spec.d.ts.map +1 -0
  267. package/lib/common/gmodel/apply-label-edit-operation-handler.spec.js +38 -0
  268. package/lib/common/gmodel/apply-label-edit-operation-handler.spec.js.map +1 -0
  269. package/lib/common/gmodel/change-bounds-operation-handler.d.ts +10 -0
  270. package/lib/common/gmodel/change-bounds-operation-handler.d.ts.map +1 -0
  271. package/lib/common/gmodel/change-bounds-operation-handler.js +71 -0
  272. package/lib/common/gmodel/change-bounds-operation-handler.js.map +1 -0
  273. package/lib/common/gmodel/change-routing-points-operation-handler.d.ts +24 -0
  274. package/lib/common/gmodel/change-routing-points-operation-handler.d.ts.map +1 -0
  275. package/lib/common/gmodel/change-routing-points-operation-handler.js +53 -0
  276. package/lib/common/gmodel/change-routing-points-operation-handler.js.map +1 -0
  277. package/lib/common/gmodel/computed-bounds-action-handler.d.ts +29 -0
  278. package/lib/common/gmodel/computed-bounds-action-handler.d.ts.map +1 -0
  279. package/lib/common/gmodel/computed-bounds-action-handler.js +50 -0
  280. package/lib/common/gmodel/computed-bounds-action-handler.js.map +1 -0
  281. package/lib/common/gmodel/delete-operation-handler.d.ts +32 -0
  282. package/lib/common/gmodel/delete-operation-handler.d.ts.map +1 -0
  283. package/lib/common/gmodel/delete-operation-handler.js +116 -0
  284. package/lib/common/gmodel/delete-operation-handler.js.map +1 -0
  285. package/lib/common/gmodel/gmodel-create-edge-operation-handler.d.ts +31 -0
  286. package/lib/common/gmodel/gmodel-create-edge-operation-handler.d.ts.map +1 -0
  287. package/lib/common/gmodel/gmodel-create-edge-operation-handler.js +65 -0
  288. package/lib/common/gmodel/gmodel-create-edge-operation-handler.js.map +1 -0
  289. package/lib/common/gmodel/gmodel-create-node-operation-handler.d.ts +31 -0
  290. package/lib/common/gmodel/gmodel-create-node-operation-handler.d.ts.map +1 -0
  291. package/lib/common/gmodel/gmodel-create-node-operation-handler.js +58 -0
  292. package/lib/common/gmodel/gmodel-create-node-operation-handler.js.map +1 -0
  293. package/lib/common/gmodel/gmodel-diagram-module.d.ts +31 -0
  294. package/lib/common/gmodel/gmodel-diagram-module.d.ts.map +1 -0
  295. package/lib/common/gmodel/gmodel-diagram-module.js +86 -0
  296. package/lib/common/gmodel/gmodel-diagram-module.js.map +1 -0
  297. package/lib/common/gmodel/index.d.ts +26 -0
  298. package/lib/common/gmodel/index.d.ts.map +1 -0
  299. package/lib/common/gmodel/index.js +42 -0
  300. package/lib/common/gmodel/index.js.map +1 -0
  301. package/lib/common/gmodel/paste-operation-handler.d.ts +35 -0
  302. package/lib/common/gmodel/paste-operation-handler.d.ts.map +1 -0
  303. package/lib/common/gmodel/paste-operation-handler.js +131 -0
  304. package/lib/common/gmodel/paste-operation-handler.js.map +1 -0
  305. package/lib/common/gmodel/reconnect-edge-operation-handler.d.ts +9 -0
  306. package/lib/common/gmodel/reconnect-edge-operation-handler.d.ts.map +1 -0
  307. package/lib/common/gmodel/reconnect-edge-operation-handler.js +67 -0
  308. package/lib/common/gmodel/reconnect-edge-operation-handler.js.map +1 -0
  309. package/lib/common/index.d.ts +88 -0
  310. package/lib/common/index.d.ts.map +1 -0
  311. package/lib/common/index.js +104 -0
  312. package/lib/common/index.js.map +1 -0
  313. package/lib/common/launch/glsp-server-launcher.d.ts +34 -0
  314. package/lib/common/launch/glsp-server-launcher.d.ts.map +1 -0
  315. package/lib/common/launch/glsp-server-launcher.js +64 -0
  316. package/lib/common/launch/glsp-server-launcher.js.map +1 -0
  317. package/lib/common/operations/compound-operation-handler.d.ts +25 -0
  318. package/lib/common/operations/compound-operation-handler.d.ts.map +1 -0
  319. package/lib/common/operations/compound-operation-handler.js +54 -0
  320. package/lib/common/operations/compound-operation-handler.js.map +1 -0
  321. package/lib/common/operations/create-operation-handler.d.ts +64 -0
  322. package/lib/common/operations/create-operation-handler.d.ts.map +1 -0
  323. package/lib/common/operations/create-operation-handler.js +90 -0
  324. package/lib/common/operations/create-operation-handler.js.map +1 -0
  325. package/lib/common/operations/cut-operation-handler.d.ts +25 -0
  326. package/lib/common/operations/cut-operation-handler.d.ts.map +1 -0
  327. package/lib/common/operations/cut-operation-handler.js +53 -0
  328. package/lib/common/operations/cut-operation-handler.js.map +1 -0
  329. package/lib/common/operations/operation-action-handler.d.ts +33 -0
  330. package/lib/common/operations/operation-action-handler.d.ts.map +1 -0
  331. package/lib/common/operations/operation-action-handler.js +94 -0
  332. package/lib/common/operations/operation-action-handler.js.map +1 -0
  333. package/lib/common/operations/operation-handler-registry.d.ts +29 -0
  334. package/lib/common/operations/operation-handler-registry.d.ts.map +1 -0
  335. package/lib/common/operations/operation-handler-registry.js +58 -0
  336. package/lib/common/operations/operation-handler-registry.js.map +1 -0
  337. package/lib/common/operations/operation-handler-registry.spec.d.ts +2 -0
  338. package/lib/common/operations/operation-handler-registry.spec.d.ts.map +1 -0
  339. package/lib/common/operations/operation-handler-registry.spec.js +50 -0
  340. package/lib/common/operations/operation-handler-registry.spec.js.map +1 -0
  341. package/lib/common/operations/operation-handler.d.ts +50 -0
  342. package/lib/common/operations/operation-handler.d.ts.map +1 -0
  343. package/lib/common/operations/operation-handler.js +7 -0
  344. package/lib/common/operations/operation-handler.js.map +1 -0
  345. package/lib/common/protocol/glsp-client-proxy.d.ts +45 -0
  346. package/lib/common/protocol/glsp-client-proxy.d.ts.map +1 -0
  347. package/lib/common/protocol/glsp-client-proxy.js +53 -0
  348. package/lib/common/protocol/glsp-client-proxy.js.map +1 -0
  349. package/lib/common/protocol/glsp-server-listener.d.ts +37 -0
  350. package/lib/common/protocol/glsp-server-listener.d.ts.map +1 -0
  351. package/lib/common/protocol/glsp-server-listener.js +5 -0
  352. package/lib/common/protocol/glsp-server-listener.js.map +1 -0
  353. package/lib/common/protocol/glsp-server.d.ts +150 -0
  354. package/lib/common/protocol/glsp-server.d.ts.map +1 -0
  355. package/lib/common/protocol/glsp-server.js +188 -0
  356. package/lib/common/protocol/glsp-server.js.map +1 -0
  357. package/lib/common/protocol/glsp-server.spec.d.ts +2 -0
  358. package/lib/common/protocol/glsp-server.spec.d.ts.map +1 -0
  359. package/lib/common/protocol/glsp-server.spec.js +119 -0
  360. package/lib/common/protocol/glsp-server.spec.js.map +1 -0
  361. package/lib/common/session/client-session-factory.d.ts +42 -0
  362. package/lib/common/session/client-session-factory.d.ts.map +1 -0
  363. package/lib/common/session/client-session-factory.js +54 -0
  364. package/lib/common/session/client-session-factory.js.map +1 -0
  365. package/lib/common/session/client-session-factory.spec.d.ts +2 -0
  366. package/lib/common/session/client-session-factory.spec.d.ts.map +1 -0
  367. package/lib/common/session/client-session-factory.spec.js +56 -0
  368. package/lib/common/session/client-session-factory.spec.js.map +1 -0
  369. package/lib/common/session/client-session-initializer.d.ts +26 -0
  370. package/lib/common/session/client-session-initializer.d.ts.map +1 -0
  371. package/lib/common/session/client-session-initializer.js +5 -0
  372. package/lib/common/session/client-session-initializer.js.map +1 -0
  373. package/lib/common/session/client-session-listener.d.ts +40 -0
  374. package/lib/common/session/client-session-listener.d.ts.map +1 -0
  375. package/lib/common/session/client-session-listener.js +3 -0
  376. package/lib/common/session/client-session-listener.js.map +1 -0
  377. package/lib/common/session/client-session-manager.d.ts +102 -0
  378. package/lib/common/session/client-session-manager.d.ts.map +1 -0
  379. package/lib/common/session/client-session-manager.js +116 -0
  380. package/lib/common/session/client-session-manager.js.map +1 -0
  381. package/lib/common/session/client-session-manager.spec.d.ts +2 -0
  382. package/lib/common/session/client-session-manager.spec.d.ts.map +1 -0
  383. package/lib/common/session/client-session-manager.spec.js +74 -0
  384. package/lib/common/session/client-session-manager.spec.js.map +1 -0
  385. package/lib/common/session/client-session.d.ts +52 -0
  386. package/lib/common/session/client-session.d.ts.map +1 -0
  387. package/lib/common/session/client-session.js +34 -0
  388. package/lib/common/session/client-session.js.map +1 -0
  389. package/lib/common/test/mock-util.d.ts +110 -0
  390. package/lib/common/test/mock-util.d.ts.map +1 -0
  391. package/lib/common/test/mock-util.js +211 -0
  392. package/lib/common/test/mock-util.js.map +1 -0
  393. package/lib/common/utils/args-util.d.ts +38 -0
  394. package/lib/common/utils/args-util.d.ts.map +1 -0
  395. package/lib/common/utils/args-util.js +81 -0
  396. package/lib/common/utils/args-util.js.map +1 -0
  397. package/lib/common/utils/client-options-util.d.ts +20 -0
  398. package/lib/common/utils/client-options-util.d.ts.map +1 -0
  399. package/lib/common/utils/client-options-util.js +26 -0
  400. package/lib/common/utils/client-options-util.js.map +1 -0
  401. package/lib/common/utils/glsp-server-error.d.ts +21 -0
  402. package/lib/common/utils/glsp-server-error.d.ts.map +1 -0
  403. package/lib/common/utils/glsp-server-error.js +33 -0
  404. package/lib/common/utils/glsp-server-error.js.map +1 -0
  405. package/lib/common/utils/layout-util.d.ts +74 -0
  406. package/lib/common/utils/layout-util.d.ts.map +1 -0
  407. package/lib/common/utils/layout-util.js +166 -0
  408. package/lib/common/utils/layout-util.js.map +1 -0
  409. package/lib/common/utils/logger.d.ts +27 -0
  410. package/lib/common/utils/logger.d.ts.map +1 -0
  411. package/lib/common/utils/logger.js +67 -0
  412. package/lib/common/utils/logger.js.map +1 -0
  413. package/lib/common/utils/promise-queue.d.ts +48 -0
  414. package/lib/common/utils/promise-queue.d.ts.map +1 -0
  415. package/lib/common/utils/promise-queue.js +93 -0
  416. package/lib/common/utils/promise-queue.js.map +1 -0
  417. package/lib/common/utils/promise-queue.spec.d.ts +2 -0
  418. package/lib/common/utils/promise-queue.spec.d.ts.map +1 -0
  419. package/lib/common/utils/promise-queue.spec.js +117 -0
  420. package/lib/common/utils/promise-queue.spec.js.map +1 -0
  421. package/lib/common/utils/registry.d.ts +73 -0
  422. package/lib/common/utils/registry.d.ts.map +1 -0
  423. package/lib/common/utils/registry.js +160 -0
  424. package/lib/common/utils/registry.js.map +1 -0
  425. package/lib/common/utils/registry.spec.d.ts +2 -0
  426. package/lib/common/utils/registry.spec.d.ts.map +1 -0
  427. package/lib/common/utils/registry.spec.js +199 -0
  428. package/lib/common/utils/registry.spec.js.map +1 -0
  429. package/lib/node/abstract-json-model-storage.d.ts +45 -0
  430. package/lib/node/abstract-json-model-storage.d.ts.map +1 -0
  431. package/lib/node/abstract-json-model-storage.js +103 -0
  432. package/lib/node/abstract-json-model-storage.js.map +1 -0
  433. package/lib/node/di/app-module.d.ts +36 -0
  434. package/lib/node/di/app-module.d.ts.map +1 -0
  435. package/lib/node/di/app-module.js +91 -0
  436. package/lib/node/di/app-module.js.map +1 -0
  437. package/lib/node/di/winston-logger.d.ts +32 -0
  438. package/lib/node/di/winston-logger.d.ts.map +1 -0
  439. package/lib/node/di/winston-logger.js +57 -0
  440. package/lib/node/di/winston-logger.js.map +1 -0
  441. package/lib/node/gmodel/gmodel-storage.d.ts +34 -0
  442. package/lib/node/gmodel/gmodel-storage.d.ts.map +1 -0
  443. package/lib/node/gmodel/gmodel-storage.js +68 -0
  444. package/lib/node/gmodel/gmodel-storage.js.map +1 -0
  445. package/lib/node/index.d.ts +24 -0
  446. package/lib/node/index.d.ts.map +1 -0
  447. package/lib/node/index.js +40 -0
  448. package/lib/node/index.js.map +1 -0
  449. package/lib/node/launch/cli-parser.d.ts +34 -0
  450. package/lib/node/launch/cli-parser.d.ts.map +1 -0
  451. package/lib/node/launch/cli-parser.js +71 -0
  452. package/lib/node/launch/cli-parser.js.map +1 -0
  453. package/lib/node/launch/cli-parser.spec.d.ts +2 -0
  454. package/lib/node/launch/cli-parser.spec.d.ts.map +1 -0
  455. package/lib/node/launch/cli-parser.spec.js +56 -0
  456. package/lib/node/launch/cli-parser.spec.js.map +1 -0
  457. package/lib/node/launch/socket-cli-parser.d.ts +9 -0
  458. package/lib/node/launch/socket-cli-parser.d.ts.map +1 -0
  459. package/lib/node/launch/socket-cli-parser.js +43 -0
  460. package/lib/node/launch/socket-cli-parser.js.map +1 -0
  461. package/lib/node/launch/socket-cli-parser.spec.d.ts +2 -0
  462. package/lib/node/launch/socket-cli-parser.spec.d.ts.map +1 -0
  463. package/lib/node/launch/socket-cli-parser.spec.js +66 -0
  464. package/lib/node/launch/socket-cli-parser.spec.js.map +1 -0
  465. package/lib/node/launch/socket-server-launcher.d.ts +34 -0
  466. package/lib/node/launch/socket-server-launcher.d.ts.map +1 -0
  467. package/lib/node/launch/socket-server-launcher.js +104 -0
  468. package/lib/node/launch/socket-server-launcher.js.map +1 -0
  469. package/lib/node/launch/socket-server-launcher.spec.d.ts +17 -0
  470. package/lib/node/launch/socket-server-launcher.spec.d.ts.map +1 -0
  471. package/lib/node/launch/socket-server-launcher.spec.js +70 -0
  472. package/lib/node/launch/socket-server-launcher.spec.js.map +1 -0
  473. package/node.d.ts +16 -0
  474. package/node.js +18 -0
  475. package/package.json +76 -0
  476. package/src/browser/di/app-module.ts +55 -0
  477. package/src/browser/di/console-logger.ts +71 -0
  478. package/src/browser/index.ts +19 -0
  479. package/src/browser/launch/worker-server-launcher.ts +58 -0
  480. package/src/common/actions/action-dispatcher.spec.ts +290 -0
  481. package/src/common/actions/action-dispatcher.ts +152 -0
  482. package/src/common/actions/action-handler-registry.spec.ts +52 -0
  483. package/src/common/actions/action-handler-registry.ts +60 -0
  484. package/src/common/actions/action-handler.ts +62 -0
  485. package/src/common/actions/client-action-handler.ts +50 -0
  486. package/src/common/actions/global-action-provider.spec.ts +79 -0
  487. package/src/common/actions/global-action-provider.ts +72 -0
  488. package/src/common/command/command-stack.ts +74 -0
  489. package/src/common/command/command.ts +39 -0
  490. package/src/common/di/binding-target.spec.ts +147 -0
  491. package/src/common/di/binding-target.ts +188 -0
  492. package/src/common/di/client-session-module.ts +29 -0
  493. package/src/common/di/diagram-module.ts +397 -0
  494. package/src/common/di/glsp-module.ts +66 -0
  495. package/src/common/di/multi-binding.ts +89 -0
  496. package/src/common/di/multi-bindings.spec.ts +133 -0
  497. package/src/common/di/server-module.ts +131 -0
  498. package/src/common/di/service-identifiers.ts +39 -0
  499. package/src/common/diagram/diagram-configuration.ts +97 -0
  500. package/src/common/diagram/request-type-hints-action-handler.spec.ts +59 -0
  501. package/src/common/diagram/request-type-hints-action-handler.ts +36 -0
  502. package/src/common/features/clipboard/request-clipboard-data-action-handler.ts +51 -0
  503. package/src/common/features/contextactions/command-palette-action-provider.ts +94 -0
  504. package/src/common/features/contextactions/context-actions-provider-registry.spec.ts +69 -0
  505. package/src/common/features/contextactions/context-actions-provider-registry.ts +47 -0
  506. package/src/common/features/contextactions/context-actions-provider.ts +36 -0
  507. package/src/common/features/contextactions/context-menu-item-provider.ts +52 -0
  508. package/src/common/features/contextactions/request-context-actions-handler.spec.ts +75 -0
  509. package/src/common/features/contextactions/request-context-actions-handler.ts +37 -0
  510. package/src/common/features/contextactions/tool-palette-item-provider.spec.ts +46 -0
  511. package/src/common/features/contextactions/tool-palette-item-provider.ts +90 -0
  512. package/src/common/features/directediting/context-edit-validator-registry.spec.ts +54 -0
  513. package/src/common/features/directediting/context-edit-validator-registry.ts +43 -0
  514. package/src/common/features/directediting/context-edit-validator.ts +55 -0
  515. package/src/common/features/directediting/label-edit-validator.ts +35 -0
  516. package/src/common/features/directediting/request-edit-validation-handler.spec.ts +131 -0
  517. package/src/common/features/directediting/request-edit-validation-handler.ts +43 -0
  518. package/src/common/features/layout/layout-engine.ts +31 -0
  519. package/src/common/features/layout/layout-operation-handler.ts +47 -0
  520. package/src/common/features/model/gmodel-factory.ts +60 -0
  521. package/src/common/features/model/gmodel-index.ts +195 -0
  522. package/src/common/features/model/gmodel-serializer.spec.ts +141 -0
  523. package/src/common/features/model/gmodel-serializer.ts +175 -0
  524. package/src/common/features/model/model-state.ts +101 -0
  525. package/src/common/features/model/model-submission-handler.ts +106 -0
  526. package/src/common/features/model/request-model-action-handler.ts +67 -0
  527. package/src/common/features/model/save-model-action-handler.ts +38 -0
  528. package/src/common/features/model/source-model-storage.ts +49 -0
  529. package/src/common/features/navigation/json-opener-options.ts +69 -0
  530. package/src/common/features/navigation/navigation-target-provider-registry.ts +36 -0
  531. package/src/common/features/navigation/navigation-target-provider.ts +50 -0
  532. package/src/common/features/navigation/navigation-target-resolution.ts +22 -0
  533. package/src/common/features/navigation/navigation-target-resolver.ts +61 -0
  534. package/src/common/features/navigation/request-navigation-targets-action-handler.ts +39 -0
  535. package/src/common/features/navigation/resolve-navigation-targets-action-handler.ts +42 -0
  536. package/src/common/features/popup/popup-model-factory.ts +38 -0
  537. package/src/common/features/popup/request-popup-model-action-handler.ts +60 -0
  538. package/src/common/features/validation/model-validator.ts +34 -0
  539. package/src/common/features/validation/request-markers-handler.ts +51 -0
  540. package/src/common/gmodel/README.md +7 -0
  541. package/src/common/gmodel/apply-label-edit-operation-handler.spec.ts +40 -0
  542. package/src/common/gmodel/apply-label-edit-operation-handler.ts +38 -0
  543. package/src/common/gmodel/change-bounds-operation-handler.ts +58 -0
  544. package/src/common/gmodel/change-routing-points-operation-handler.ts +39 -0
  545. package/src/common/gmodel/computed-bounds-action-handler.ts +51 -0
  546. package/src/common/gmodel/delete-operation-handler.ts +115 -0
  547. package/src/common/gmodel/gmodel-create-edge-operation-handler.ts +58 -0
  548. package/src/common/gmodel/gmodel-create-node-operation-handler.ts +47 -0
  549. package/src/common/gmodel/gmodel-diagram-module.ts +81 -0
  550. package/src/common/gmodel/index.ts +26 -0
  551. package/src/common/gmodel/paste-operation-handler.ts +119 -0
  552. package/src/common/gmodel/reconnect-edge-operation-handler.ts +55 -0
  553. package/src/common/index.ts +88 -0
  554. package/src/common/launch/glsp-server-launcher.ts +70 -0
  555. package/src/common/operations/compound-operation-handler.ts +38 -0
  556. package/src/common/operations/create-operation-handler.ts +106 -0
  557. package/src/common/operations/cut-operation-handler.ts +38 -0
  558. package/src/common/operations/operation-action-handler.ts +69 -0
  559. package/src/common/operations/operation-handler-registry.spec.ts +50 -0
  560. package/src/common/operations/operation-handler-registry.ts +51 -0
  561. package/src/common/operations/operation-handler.ts +57 -0
  562. package/src/common/protocol/glsp-client-proxy.ts +65 -0
  563. package/src/common/protocol/glsp-server-listener.ts +39 -0
  564. package/src/common/protocol/glsp-server.spec.ts +150 -0
  565. package/src/common/protocol/glsp-server.ts +320 -0
  566. package/src/common/session/client-session-factory.spec.ts +60 -0
  567. package/src/common/session/client-session-factory.ts +70 -0
  568. package/src/common/session/client-session-initializer.ts +27 -0
  569. package/src/common/session/client-session-listener.ts +41 -0
  570. package/src/common/session/client-session-manager.spec.ts +82 -0
  571. package/src/common/session/client-session-manager.ts +182 -0
  572. package/src/common/session/client-session.ts +62 -0
  573. package/src/common/test/mock-util.ts +256 -0
  574. package/src/common/utils/args-util.ts +98 -0
  575. package/src/common/utils/client-options-util.ts +22 -0
  576. package/src/common/utils/glsp-server-error.ts +27 -0
  577. package/src/common/utils/layout-util.ts +164 -0
  578. package/src/common/utils/logger.ts +72 -0
  579. package/src/common/utils/promise-queue.spec.ts +138 -0
  580. package/src/common/utils/promise-queue.ts +103 -0
  581. package/src/common/utils/registry.spec.ts +223 -0
  582. package/src/common/utils/registry.ts +154 -0
  583. package/src/node/abstract-json-model-storage.ts +114 -0
  584. package/src/node/di/app-module.ts +102 -0
  585. package/src/node/di/winston-logger.ts +76 -0
  586. package/src/node/gmodel/gmodel-storage.ts +53 -0
  587. package/src/node/index.ts +23 -0
  588. package/src/node/launch/cli-parser.spec.ts +61 -0
  589. package/src/node/launch/cli-parser.ts +86 -0
  590. package/src/node/launch/socket-cli-parser.spec.ts +73 -0
  591. package/src/node/launch/socket-cli-parser.ts +52 -0
  592. package/src/node/launch/socket-server-launcher.spec.ts +68 -0
  593. package/src/node/launch/socket-server-launcher.ts +90 -0
@@ -0,0 +1,164 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2022-2023 EclipseSource 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
+
17
+ import { GAlignable, GBoundsAware, GEdge, GGraph, GModelElement, GModelRoot, isGAlignable, isGBoundsAware } from '@eclipse-glsp/graph';
18
+ import { ElementAndAlignment, ElementAndBounds, ElementAndRoutingPoints, Point } from '@eclipse-glsp/protocol';
19
+ import { GModelIndex } from '../features/model/gmodel-index';
20
+ import { ArgsUtil } from './args-util';
21
+ import { getOrThrow, GLSPServerError } from './glsp-server-error';
22
+
23
+ /**
24
+ * Applies the new bounds to the model.
25
+ *
26
+ * @param bounds The new bounds.
27
+ * @param index The model index.
28
+ * @returns The changed element.
29
+ */
30
+ export function applyBounds(bounds: ElementAndBounds, index: GModelIndex): GBoundsAware | undefined {
31
+ const element = getOrThrow(index.get(bounds.elementId), 'Model element not found! ID: ' + bounds.elementId);
32
+ if (isGBoundsAware(element)) {
33
+ if (bounds.newPosition !== undefined) {
34
+ element.position = bounds.newPosition;
35
+ }
36
+ element.size = bounds.newSize;
37
+ return element;
38
+ }
39
+ return undefined;
40
+ }
41
+
42
+ /**
43
+ * Applies the new alignment to the model.
44
+ *
45
+ * @param alignment The new alignment.
46
+ * @param index The model index.
47
+ * @returns The changed element.
48
+ */
49
+ export function applyAlignment(alignment: ElementAndAlignment, index: GModelIndex): GAlignable | undefined {
50
+ const element = getOrThrow(index.get(alignment.elementId), 'Model element not found! ID: ' + alignment.elementId);
51
+ if (isGAlignable(element)) {
52
+ element.alignment = alignment.newAlignment;
53
+ return element;
54
+ }
55
+ return undefined;
56
+ }
57
+
58
+ /**
59
+ * Applies the new route to the model.
60
+ *
61
+ * @param route The new route.
62
+ * @param index The model index.
63
+ * @returns The changed element.
64
+ */
65
+ export function applyRoute(route: ElementAndRoutingPoints, index: GModelIndex): GEdge {
66
+ const routingPoints = route.newRoutingPoints ?? [];
67
+ if (routingPoints.length < 2) {
68
+ throw new GLSPServerError('Invalid Route!');
69
+ }
70
+ // first and last point mark the source and target point
71
+ const edge = applyRoutingPoints(route, index);
72
+ const edgeRoutingPoints = edge.routingPoints;
73
+
74
+ const args = edge.args ?? {};
75
+ const source = edgeRoutingPoints.shift()!;
76
+ const target = edgeRoutingPoints.pop()!;
77
+ args[ArgsUtil.KEY_EDGE_SOURCE_POINT_X] = source.x;
78
+ args[ArgsUtil.KEY_EDGE_SOURCE_POINT_Y] = source.y;
79
+ args[ArgsUtil.KEY_EDGE_TARGET_POINT_X] = target.x;
80
+ args[ArgsUtil.KEY_EDGE_TARGET_POINT_Y] = target.y;
81
+ return edge;
82
+ }
83
+
84
+ /**
85
+ * Returns the complete route of the given edge. The route, as opposed to the routing points, also contain the source
86
+ * and target point.
87
+ *
88
+ * @param edge The edge from which we get the route
89
+ * @returns complete edge route
90
+ */
91
+ export function getRoute(edge: GEdge): ElementAndRoutingPoints {
92
+ const sourcePoint = ArgsUtil.getEdgeSourcePoint(edge.args);
93
+ if (!sourcePoint) {
94
+ throw new GLSPServerError('Cannot get route without source point!');
95
+ }
96
+ const targetPoint = ArgsUtil.getEdgeTargetPoint(edge.args);
97
+ if (!targetPoint) {
98
+ throw new GLSPServerError('Cannot get route without target point!');
99
+ }
100
+ const route: Point[] = [];
101
+ route.push(sourcePoint);
102
+ route.push(...edge.routingPoints);
103
+ route.push(targetPoint);
104
+ return { elementId: edge.id, newRoutingPoints: route };
105
+ }
106
+
107
+ export function applyRoutingPoints(routingPoints: ElementAndRoutingPoints, index: GModelIndex): GEdge {
108
+ const edge = getOrThrow(index.findByClass(routingPoints.elementId, GEdge), 'Model element not found! ID: ' + routingPoints.elementId);
109
+ edge.routingPoints = routingPoints.newRoutingPoints ?? [];
110
+ return edge;
111
+ }
112
+ /**
113
+ * Returns the relative location of the given absolute location within the container.
114
+ *
115
+ * @param absoluteLocation absolute location
116
+ * @param container container
117
+ * @return relative location if it can be determined, absolute location in case of error and null if the container
118
+ * cannot contain any location.
119
+ */
120
+ export function getRelativeLocation(absoluteLocation: Point, container: GModelElement): Point | undefined {
121
+ const allowNegativeCoordinates = container instanceof GGraph;
122
+ if (isGBoundsAware(container)) {
123
+ const relativePosition = absoluteToRelative(absoluteLocation, container);
124
+ const relativeLocation = allowNegativeCoordinates
125
+ ? relativePosition
126
+ : { x: Math.max(0, relativePosition.x), y: Math.max(0, relativePosition.y) };
127
+ return relativeLocation;
128
+ }
129
+ return undefined;
130
+ }
131
+
132
+ /**
133
+ * Convert a point in absolute coordinates to a point relative to the specified GBoundsAware.
134
+ * Note: this method only works if the specified {@link GBoundsAware} is part of a
135
+ * hierarchy of {@link GBoundsAware}. If any of its parents (recursively) does not implement
136
+ * {@link GBoundsAware}, this method will throw an exception.
137
+ *
138
+ * @param absolutePoint
139
+ * @param modelElement
140
+ * @returns
141
+ * A new point, relative to the coordinates space of the specified {@link GBoundsAware}
142
+ * @throws Error if the modelElement is not part of a {@link GBoundsAware} hierarchy
143
+ */
144
+ export function absoluteToRelative(absolutePoint: Point, modelElement: GModelElement & GBoundsAware): Point {
145
+ let parentElement;
146
+ if (!(modelElement instanceof GModelRoot)) {
147
+ parentElement = modelElement.parent;
148
+ }
149
+
150
+ let relativeToParent: Point;
151
+ if (!parentElement) {
152
+ relativeToParent = { x: absolutePoint.x, y: absolutePoint.y };
153
+ } else {
154
+ if (!isGBoundsAware(parentElement)) {
155
+ throw new Error(`The element is not part of a GBoundsAware hierarchy: ${modelElement}`);
156
+ }
157
+ relativeToParent = absoluteToRelative(absolutePoint, parentElement);
158
+ }
159
+
160
+ const x = modelElement.position?.x ?? 0;
161
+ const y = modelElement.position?.y ?? 0;
162
+
163
+ return { x: relativeToParent.x - x, y: relativeToParent.y - y };
164
+ }
@@ -0,0 +1,72 @@
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 { injectable } from 'inversify';
17
+
18
+ @injectable()
19
+ export abstract class Logger {
20
+ abstract logLevel: LogLevel;
21
+
22
+ abstract caller?: string;
23
+
24
+ abstract info(message: string, ...params: any[]): void;
25
+
26
+ abstract warn(message: string, ...params: any[]): void;
27
+
28
+ abstract error(message: string, ...params: any[]): void;
29
+
30
+ abstract debug(message: string, ...params: any[]): void;
31
+ }
32
+
33
+ export class NullLogger extends Logger {
34
+ logLevel: LogLevel;
35
+ caller?: string | undefined;
36
+ info(message: string, ...params: any[]): void {
37
+ // no-op
38
+ }
39
+ warn(message: string, ...params: any[]): void {
40
+ // no-op
41
+ }
42
+ error(message: string, ...params: any[]): void {
43
+ // no-op
44
+ }
45
+ debug(message: string, ...params: any[]): void {
46
+ // no-op
47
+ }
48
+ }
49
+
50
+ export const LoggerFactory = Symbol('LoggerFactory');
51
+
52
+ export type LoggerFactory = (caller: string) => Logger;
53
+
54
+ export enum LogLevel {
55
+ none = 0,
56
+ error = 1,
57
+ warn = 2,
58
+ info = 3,
59
+ debug = 4
60
+ }
61
+
62
+ export function asLogLevel(level: string | number): LogLevel | undefined {
63
+ let levelKey = level;
64
+ if (typeof levelKey === 'string') {
65
+ levelKey = levelKey.toLowerCase();
66
+ }
67
+
68
+ if (levelKey in LogLevel) {
69
+ return (LogLevel as any)[level];
70
+ }
71
+ return undefined;
72
+ }
@@ -0,0 +1,138 @@
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 { delay } from '../test/mock-util';
17
+ import { PromiseQueue } from './promise-queue';
18
+ import { expect } from 'chai';
19
+
20
+ // Helper types and functions that are needed for test setup
21
+
22
+ /**
23
+ * Helper class to inspect the state of promise during its resolve() execution.
24
+ */
25
+ class PromiseState {
26
+ private _started = false;
27
+ private _stopped = false;
28
+ onStartRunnable?: () => void;
29
+ onStopRunnable?: () => void;
30
+
31
+ start(): void {
32
+ this._started = true;
33
+ if (this.onStartRunnable) {
34
+ this.onStartRunnable();
35
+ }
36
+ }
37
+
38
+ stop(): void {
39
+ this._stopped = true;
40
+ if (this.onStopRunnable) {
41
+ this.onStopRunnable();
42
+ }
43
+ }
44
+
45
+ onStart(runnable: () => void): void {
46
+ this.onStartRunnable = runnable;
47
+ }
48
+
49
+ onStop(runnable: () => void): void {
50
+ this.onStopRunnable = runnable;
51
+ }
52
+
53
+ get started(): boolean {
54
+ return this._started;
55
+ }
56
+
57
+ get stopped(): boolean {
58
+ return this._stopped;
59
+ }
60
+ }
61
+
62
+ interface TestPromise {
63
+ state: PromiseState;
64
+ promise: () => Promise<void>;
65
+ }
66
+
67
+ function newTestPromise(resolveTime: number): TestPromise {
68
+ const state = new PromiseState();
69
+ const promise = async (): Promise<void> => {
70
+ state.start();
71
+ await delay(resolveTime);
72
+ state.stop();
73
+ };
74
+ return { state, promise };
75
+ }
76
+
77
+ let queue = new PromiseQueue();
78
+
79
+ // Test execution
80
+ describe('test PromiseQueue', () => {
81
+ beforeEach(() => {
82
+ queue = new PromiseQueue();
83
+ });
84
+ it('enqueue - one element', async () => {
85
+ const { state, promise } = newTestPromise(100);
86
+ state.onStart(() => {
87
+ expect(queue.isBusy).true;
88
+ });
89
+ const queEnd = queue.enqueue(promise);
90
+ expect(queue.isEmpty).true;
91
+ await queEnd;
92
+ });
93
+
94
+ it('enqueue - two elements', async () => {
95
+ const p1 = newTestPromise(100);
96
+ p1.state.onStop(() => expect(p2.state.started).false);
97
+
98
+ const p2 = newTestPromise(100);
99
+
100
+ p2.state.onStart(() => {
101
+ expect(queue.isEmpty).true;
102
+ expect(p1.state.stopped).true;
103
+ });
104
+
105
+ queue.enqueue(p1.promise);
106
+ const queEnd = queue.enqueue(p2.promise);
107
+ expect(queue.size).to.be.equal(1);
108
+ await queEnd;
109
+ });
110
+
111
+ it('enqueue - three elements (first promise in queue has longest resolve time)', async () => {
112
+ const p1 = newTestPromise(300);
113
+ p1.state.onStop(() => {
114
+ expect(p2.state.started).false;
115
+ expect(p3.state.started).false;
116
+ });
117
+
118
+ const p2 = newTestPromise(200);
119
+ p2.state.onStart(() => {
120
+ expect(queue.size).to.be.equal(1);
121
+ expect(p1.state.stopped).true;
122
+ expect(p3.state.started).false;
123
+ });
124
+
125
+ const p3 = newTestPromise(100);
126
+ p3.state.onStart(() => {
127
+ expect(queue.isEmpty).true;
128
+ expect(p2.state.stopped).true;
129
+ });
130
+
131
+ queue.enqueue(p1.promise);
132
+ queue.enqueue(p2.promise);
133
+ expect(queue.size).to.be.equal(1);
134
+ const queueEnd = queue.enqueue(p3.promise);
135
+ expect(queue.size).to.be.equal(2);
136
+ await queueEnd;
137
+ });
138
+ });
@@ -0,0 +1,103 @@
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
+
17
+ /**
18
+ * Description for promises that are put into a queue and
19
+ * resolved once dequeued.
20
+ */
21
+ export interface PromiseQueueElement<T = void> {
22
+ promise: () => Promise<T>;
23
+ resolve: (value: T) => void;
24
+ reject: (reason?: any) => void;
25
+ }
26
+
27
+ /**
28
+ * A data structure that enables controlled,sequential resolving
29
+ * of promises. Promises that are put in this queue are processed one by one.
30
+ * i.e. After the first promise in the queue is resolved, it will be removed from the queue and the resolving of the
31
+ * the next promise (if present) will start. The queue can only resolve one promise at a given time.
32
+ */
33
+ export class PromiseQueue<T = void> {
34
+ protected queue: PromiseQueueElement<T>[] = [];
35
+ protected busy = false;
36
+
37
+ /**
38
+ * Add a {@link PromiseQueueElement} to the queue
39
+ * @param promise The element that should be queued
40
+ * @param atStart if `true` the element is added to the start of queue, otherwise it's added at queue end.
41
+ * @returns A promise of the queued promise that resolves once dequeued.
42
+ */
43
+ enqueue(promise: () => Promise<T>): Promise<T> {
44
+ return new Promise((resolve, reject) => {
45
+ const element = {
46
+ promise,
47
+ resolve,
48
+ reject
49
+ };
50
+ this.queue.push(element);
51
+ this.dequeue();
52
+ });
53
+ }
54
+
55
+ protected dequeue(): boolean {
56
+ if (this.busy) {
57
+ return false;
58
+ }
59
+
60
+ const element = this.queue.shift();
61
+ if (!element) {
62
+ return false;
63
+ }
64
+
65
+ try {
66
+ this.busy = true;
67
+ this.resolveQueuedPromise(element);
68
+ } catch (error) {
69
+ element.reject(error);
70
+ this.busy = false;
71
+ this.dequeue();
72
+ }
73
+ return true;
74
+ }
75
+
76
+ protected async resolveQueuedPromise(element: PromiseQueueElement<T>): Promise<void> {
77
+ try {
78
+ const value = await element.promise();
79
+ return element.resolve(value);
80
+ } catch (error) {
81
+ element.reject(error);
82
+ } finally {
83
+ this.busy = false;
84
+ this.dequeue();
85
+ }
86
+ }
87
+
88
+ get isBusy(): boolean {
89
+ return this.busy;
90
+ }
91
+
92
+ get size(): number {
93
+ return this.queue.length;
94
+ }
95
+
96
+ get isEmpty(): boolean {
97
+ return this.queue.length === 0;
98
+ }
99
+
100
+ clear(): void {
101
+ this.queue = [];
102
+ }
103
+ }
@@ -0,0 +1,223 @@
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 { MultiRegistry, Registry } from './registry';
17
+ import { expect } from 'chai';
18
+
19
+ describe('Test Registry', () => {
20
+ let registry: Registry<string, string>;
21
+
22
+ beforeEach(() => {
23
+ registry = new Registry();
24
+ });
25
+
26
+ it('register - with new key-value pair', () => {
27
+ const key = 'key';
28
+ const value = 'value';
29
+ expect(registry.register(key, value)).true;
30
+ expect(registry.get(key), value);
31
+ });
32
+
33
+ it('register - with key-value pair with a already registered key', () => {
34
+ // Setup
35
+ const key = 'key';
36
+ const value = 'value';
37
+ expect(registry.register(key, value)).true;
38
+ // Test execution
39
+ expect(registry.register(key, 'newValue')).false;
40
+ expect(registry.get(key), value);
41
+ });
42
+
43
+ it('deregister - with registered key', () => {
44
+ // Setup
45
+ const key = 'key';
46
+ const value = 'value';
47
+ expect(registry.register(key, value)).true;
48
+ // Test execution
49
+ expect(registry.deregister(key)).true;
50
+ expect(registry.get(key), undefined);
51
+ });
52
+
53
+ it('deregister - with unregistered key', () => {
54
+ expect(registry.deregister('unregisteredKey')).false;
55
+ });
56
+
57
+ it('haskey - with registered key', () => {
58
+ // Setup
59
+ const key = 'key';
60
+ const value = 'value';
61
+ expect(registry.register(key, value)).true;
62
+ // Test execution
63
+ expect(registry.hasKey(key)).true;
64
+ });
65
+
66
+ it('haskey - with unregistered key', () => {
67
+ expect(registry.deregister('unregisteredKey')).false;
68
+ });
69
+
70
+ it('get - with registered key', () => {
71
+ // Setup
72
+ const key = 'key';
73
+ const value = 'value';
74
+ expect(registry.register(key, value)).true;
75
+ // Test execution
76
+ expect(registry.get(key), value);
77
+ });
78
+
79
+ it('get - with unregistered key', () => {
80
+ expect(registry.get('unregisteredKey'), undefined);
81
+ });
82
+
83
+ it('getAll - should return three values', () => {
84
+ // Setup
85
+ const e1 = { key: 'key1', value: 'value1' };
86
+ const e2 = { key: 'key2', value: 'value2' };
87
+ const e3 = { key: 'key3', value: 'value3' };
88
+ registry.register(e1.key, e1.value);
89
+ registry.register(e2.key, e2.value);
90
+ registry.register(e3.key, e3.value);
91
+ // Test execution
92
+ const result = registry.getAll();
93
+ expect(result).to.have.length(3);
94
+ expect(result.includes(e1.value)).true;
95
+ expect(result.includes(e2.value)).true;
96
+ expect(result.includes(e3.value)).true;
97
+ });
98
+
99
+ it('keys - should return three keys', () => {
100
+ // Setup
101
+ const e1 = { key: 'key1', value: 'value1' };
102
+ const e2 = { key: 'key2', value: 'value2' };
103
+ const e3 = { key: 'key3', value: 'value3' };
104
+ registry.register(e1.key, e1.value);
105
+ registry.register(e2.key, e2.value);
106
+ registry.register(e3.key, e3.value);
107
+ // Test execution
108
+ const result = registry.keys();
109
+ expect(result).to.have.length(3);
110
+ expect(result.includes(e1.key)).true;
111
+ expect(result.includes(e2.key)).true;
112
+ expect(result.includes(e3.key)).true;
113
+ });
114
+ });
115
+
116
+ describe('Test MapMultiRegistry', () => {
117
+ let multiRegistry: MultiRegistry<string, string>;
118
+
119
+ beforeEach(() => {
120
+ multiRegistry = new MultiRegistry();
121
+ });
122
+
123
+ it('register - with new key-value pair', () => {
124
+ // Setup
125
+ const e1 = { key: 'key', value: 'value' };
126
+ const e2 = { key: e1.key, value: 'value2' };
127
+
128
+ multiRegistry.register(e1.key, e1.value);
129
+ multiRegistry.register(e2.key, e2.value);
130
+
131
+ const resultValue = multiRegistry.get(e1.key);
132
+ expect(resultValue).to.not.be.undefined;
133
+ expect(resultValue!.length).to.be.equal(2);
134
+ expect(resultValue!.includes(e1.value)).true;
135
+ expect(resultValue!.includes(e2.value)).true;
136
+ });
137
+
138
+ it('deregister - with registered key', () => {
139
+ // Setup
140
+ const key = 'key';
141
+ const existingValue = ['value', 'value2'];
142
+ multiRegistry.register(key, existingValue[0]);
143
+ multiRegistry.register(key, existingValue[1]);
144
+ // Test execution
145
+ expect(multiRegistry.deregister(key, existingValue[1])).true;
146
+ const result = multiRegistry.get(key);
147
+ expect(result.length).to.be.equal(1);
148
+ expect(result[0], existingValue[0]);
149
+ });
150
+
151
+ it('deregister - with unregistered key', () => {
152
+ expect(multiRegistry.deregister('unregisteredKey', 'someValue')).false;
153
+ });
154
+
155
+ it('deregisterAll - with registered key', () => {
156
+ // Setup
157
+ const key = 'key';
158
+ const existingValue = ['value', 'value2'];
159
+ multiRegistry.register(key, existingValue[0]);
160
+ multiRegistry.register(key, existingValue[1]);
161
+ expect(multiRegistry.deregisterAll(key)).true;
162
+ expect(multiRegistry.get(key)).to.have.length(0);
163
+ });
164
+
165
+ it('deregisterAll - with unregistered key', () => {
166
+ expect(multiRegistry.deregisterAll('unregisteredKey')).false;
167
+ });
168
+
169
+ it('haskey - with registered key', () => {
170
+ // Setup
171
+ const key = 'key';
172
+ const existingValue = 'value';
173
+ multiRegistry.register(key, existingValue);
174
+ // Test execution
175
+ expect(multiRegistry.hasKey(key)).true;
176
+ });
177
+
178
+ it('haskey - with unregistered key', () => {
179
+ expect(multiRegistry.hasKey('unregisteredKey')).false;
180
+ });
181
+
182
+ it('get - with registered key', () => {
183
+ // Setup
184
+ const key = 'key';
185
+ const existingValue = 'value';
186
+ multiRegistry.register(key, existingValue);
187
+ // Test execution
188
+ expect(multiRegistry.get(key).length).to.be.equal(1);
189
+ expect(multiRegistry.get(key).includes(existingValue)).true;
190
+ });
191
+
192
+ it('get - with unregistered key', () => {
193
+ expect(multiRegistry.get('unregisteredKey')).to.have.length(0);
194
+ });
195
+
196
+ it('getAll', () => {
197
+ // Setup
198
+ const e1 = { key: 'key1', value: ['value1', 'value2'] };
199
+ const e2 = { key: 'key2', value: ['value3'] };
200
+ multiRegistry.register(e1.key, e1.value[0]);
201
+ multiRegistry.register(e1.key, e1.value[1]);
202
+ multiRegistry.register(e2.key, e2.value[0]);
203
+ // Test execution
204
+ const result = multiRegistry.getAll();
205
+ expect(result).to.have.length(3);
206
+ expect(e1.value.every(v => result.includes(v))).true;
207
+ expect(e2.value.every(v => result.includes(v))).true;
208
+ });
209
+
210
+ it('keys', () => {
211
+ // Setup
212
+ const e1 = { key: 'key1', value: ['value1', 'value2'] };
213
+ const e2 = { key: 'key2', value: ['value3'] };
214
+ multiRegistry.register(e1.key, e1.value[0]);
215
+ multiRegistry.register(e1.key, e1.value[1]);
216
+ multiRegistry.register(e2.key, e2.value[0]);
217
+ // Test execution
218
+ const result = multiRegistry.keys();
219
+ expect(result.length).to.be.equal(2);
220
+ expect(result.includes(e1.key)).true;
221
+ expect(result.includes(e2.key)).true;
222
+ });
223
+ });