@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,63 @@
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
+ * A command implements a specific modification of the source model, which can be applied by invoking `execute()`.
18
+ * Commands may also provide implementations to `undo()` and `redo()` the effect they had.
19
+ * To maintain an order in which commands can be undone and redone, they are managed in the context of a {@link CommandStack}.
20
+ *
21
+ * Each command is self contained and stores all the information it needs to execute, undo or redo itself.
22
+ *
23
+ * In theory commands can be used to execute arbitrary activities and not only modify the source model.
24
+ * However, it is mostly used to record and manage changes made to the source model via GLSP operations.
25
+ */
26
+ export interface Command {
27
+ /**
28
+ * Performs the command activity required for the effect (e.g. source model change).
29
+ */
30
+ execute(): void;
31
+ /**
32
+ * Performs the command activity required to `undo` the effects of a preceding `execute` (or `redo`).
33
+ * The effect, if any, of calling `undo` before `execute` or `redo` have been called, is undefined.
34
+ */
35
+ undo(): void;
36
+ /**
37
+ * Performs the command activity required to `redo` the effect after undoing the effect.
38
+ * The effect, if any, of calling `redo` before `undo` is called is undefined.
39
+ */
40
+ redo(): void;
41
+ /**
42
+ * Returns whether the command can be undone.
43
+ * This function is optional. If not implemented, it is assumed that the command can be undone.
44
+ * @returns whether the command can be undone
45
+ */
46
+ canUndo?(): boolean;
47
+ }
48
+ export declare namespace Command {
49
+ function canUndo(command: Command): boolean;
50
+ }
51
+ /**
52
+ * A command that comprises a sequence of subcommands.
53
+ */
54
+ export declare class CompoundCommand implements Command {
55
+ protected readonly commands: Command[];
56
+ constructor(commands: Command[]);
57
+ constructor(...commands: Command[]);
58
+ execute(): void;
59
+ undo(): void;
60
+ redo(): void;
61
+ canUndo(): boolean;
62
+ }
63
+ //# sourceMappingURL=command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../src/common/command/command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAIlF;;;;;;;;;GASG;AACH,MAAM,WAAW,OAAO;IACpB;;OAEG;IACH,OAAO,IAAI,IAAI,CAAC;IAEhB;;;OAGG;IACH,IAAI,IAAI,IAAI,CAAC;IAEb;;;OAGG;IACH,IAAI,IAAI,IAAI,CAAC;IAEb;;;;OAIG;IACH,OAAO,CAAC,IAAI,OAAO,CAAC;CACvB;AAED,yBAAiB,OAAO,CAAC;IACrB,SAAgB,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAEjD;CACJ;AAED;;GAEG;AACH,qBAAa,eAAgB,YAAW,OAAO;IAC3C,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,CAAC;gBAE3B,QAAQ,EAAE,OAAO,EAAE;gBACnB,GAAG,QAAQ,EAAE,OAAO,EAAE;IAMlC,OAAO,IAAI,IAAI;IAoBf,IAAI,IAAI,IAAI;IAaZ,IAAI,IAAI,IAAI;IAcZ,OAAO,IAAI,OAAO;CAGrB"}
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ /********************************************************************************
3
+ * Copyright (c) 2022-2023 STMicroelectronics and others.
4
+ *
5
+ * This program and the accompanying materials are made available under the
6
+ * terms of the Eclipse Public License v. 2.0 which is available at
7
+ * http://www.eclipse.org/legal/epl-2.0.
8
+ *
9
+ * This Source Code may also be made available under the following Secondary
10
+ * Licenses when the conditions for such availability set forth in the Eclipse
11
+ * Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ * with the GNU Classpath Exception which is available at
13
+ * https://www.gnu.org/software/classpath/license.html.
14
+ *
15
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
16
+ ********************************************************************************/
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.CompoundCommand = exports.Command = void 0;
19
+ const protocol_1 = require("@eclipse-glsp/protocol");
20
+ var Command;
21
+ (function (Command) {
22
+ function canUndo(command) {
23
+ var _a, _b;
24
+ return (_b = (_a = command.canUndo) === null || _a === void 0 ? void 0 : _a.call(command)) !== null && _b !== void 0 ? _b : true;
25
+ }
26
+ Command.canUndo = canUndo;
27
+ })(Command = exports.Command || (exports.Command = {}));
28
+ /**
29
+ * A command that comprises a sequence of subcommands.
30
+ */
31
+ class CompoundCommand {
32
+ constructor(...commands) {
33
+ this.commands = [];
34
+ (0, protocol_1.flatPush)(this.commands, commands);
35
+ }
36
+ execute() {
37
+ const alreadyExecuted = [];
38
+ try {
39
+ this.commands.forEach(command => {
40
+ command.execute();
41
+ alreadyExecuted.unshift(command);
42
+ });
43
+ }
44
+ catch (err) {
45
+ for (const command of alreadyExecuted) {
46
+ if (Command.canUndo(command)) {
47
+ command.undo();
48
+ }
49
+ else {
50
+ break;
51
+ }
52
+ }
53
+ throw err;
54
+ }
55
+ }
56
+ undo() {
57
+ const alreadyUndone = [];
58
+ try {
59
+ [...this.commands].reverse().forEach(command => {
60
+ command.undo();
61
+ alreadyUndone.unshift(command);
62
+ });
63
+ }
64
+ catch (err) {
65
+ alreadyUndone.forEach(command => command.redo());
66
+ throw err;
67
+ }
68
+ }
69
+ redo() {
70
+ const alreadyRedone = [];
71
+ try {
72
+ this.commands.forEach(command => {
73
+ command.redo();
74
+ alreadyRedone.unshift(command);
75
+ });
76
+ }
77
+ catch (err) {
78
+ alreadyRedone.forEach(command => command.undo());
79
+ throw err;
80
+ }
81
+ }
82
+ canUndo() {
83
+ return this.commands.every(Command.canUndo);
84
+ }
85
+ }
86
+ exports.CompoundCommand = CompoundCommand;
87
+ //# sourceMappingURL=command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.js","sourceRoot":"","sources":["../../../src/common/command/command.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;kFAckF;;;AAElF,qDAA8D;AAsC9D,IAAiB,OAAO,CAIvB;AAJD,WAAiB,OAAO;IACpB,SAAgB,OAAO,CAAC,OAAgB;;QACpC,OAAO,MAAA,MAAA,OAAO,CAAC,OAAO,uDAAI,mCAAI,IAAI,CAAC;IACvC,CAAC;IAFe,eAAO,UAEtB,CAAA;AACL,CAAC,EAJgB,OAAO,GAAP,eAAO,KAAP,eAAO,QAIvB;AAED;;GAEG;AACH,MAAa,eAAe;IAKxB,YAAY,GAAG,QAA+B;QAC1C,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;QACnB,IAAA,mBAAQ,EAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;IACtC,CAAC;IAED,OAAO;QACH,MAAM,eAAe,GAAc,EAAE,CAAC;QAEtC,IAAI;YACA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBAC5B,OAAO,CAAC,OAAO,EAAE,CAAC;gBAClB,eAAe,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACrC,CAAC,CAAC,CAAC;SACN;QAAC,OAAO,GAAG,EAAE;YACV,KAAK,MAAM,OAAO,IAAI,eAAe,EAAE;gBACnC,IAAI,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;oBAC1B,OAAO,CAAC,IAAI,EAAE,CAAC;iBAClB;qBAAM;oBACH,MAAM;iBACT;aACJ;YACD,MAAM,GAAG,CAAC;SACb;IACL,CAAC;IAED,IAAI;QACA,MAAM,aAAa,GAAc,EAAE,CAAC;QACpC,IAAI;YACA,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBAC3C,OAAO,CAAC,IAAI,EAAE,CAAC;gBACf,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACnC,CAAC,CAAC,CAAC;SACN;QAAC,OAAO,GAAG,EAAE;YACV,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YACjD,MAAM,GAAG,CAAC;SACb;IACL,CAAC;IAED,IAAI;QACA,MAAM,aAAa,GAAc,EAAE,CAAC;QAEpC,IAAI;YACA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;gBAC5B,OAAO,CAAC,IAAI,EAAE,CAAC;gBACf,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACnC,CAAC,CAAC,CAAC;SACN;QAAC,OAAO,GAAG,EAAE;YACV,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC;YACjD,MAAM,GAAG,CAAC;SACb;IACL,CAAC;IAED,OAAO;QACH,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC;CACJ;AA5DD,0CA4DC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=command.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.spec.d.ts","sourceRoot":"","sources":["../../../src/common/command/command.spec.ts"],"names":[],"mappings":""}
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ /********************************************************************************
4
+ * Copyright (c) 2023 EclipseSource 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 chai_1 = require("chai");
19
+ const sinon = require("sinon");
20
+ const mock_util_1 = require("../test/mock-util");
21
+ const command_1 = require("./command");
22
+ describe('CompoundCommand', () => {
23
+ const sandbox = sinon.createSandbox();
24
+ const command1 = sandbox.stub(new mock_util_1.StubCommand());
25
+ const command2 = sandbox.stub(new mock_util_1.StubCommand());
26
+ const command3 = sandbox.stub(new mock_util_1.StubCommand());
27
+ const compoundCommand = new command_1.CompoundCommand(command1, command2, command3);
28
+ afterEach(() => {
29
+ sandbox.reset();
30
+ });
31
+ describe('execute', () => {
32
+ it('Should execute the subcommands in order', () => {
33
+ compoundCommand.execute();
34
+ (0, chai_1.expect)(command1.execute.calledOnce).to.be.true;
35
+ (0, chai_1.expect)(command2.execute.calledOnce).to.be.true;
36
+ (0, chai_1.expect)(command3.execute.calledOnce).to.be.true;
37
+ (0, chai_1.expect)(command1.execute.calledBefore(command2.execute)).to.be.true;
38
+ (0, chai_1.expect)(command2.execute.calledBefore(command3.execute)).to.be.true;
39
+ });
40
+ it('Should undo partially executed subcommands in case of an error', () => {
41
+ command3.execute.throwsException();
42
+ (0, chai_1.expect)(() => compoundCommand.execute()).to.throw();
43
+ (0, chai_1.expect)(command1.execute.calledOnce).to.be.true;
44
+ (0, chai_1.expect)(command2.execute.calledOnce).to.be.true;
45
+ (0, chai_1.expect)(command3.execute.calledOnce).to.be.true;
46
+ (0, chai_1.expect)(command1.undo.calledOnce).to.be.true;
47
+ (0, chai_1.expect)(command2.undo.calledOnce).to.be.true;
48
+ });
49
+ });
50
+ describe('undo', () => {
51
+ it('Should undo the subcommands in reverse order', () => {
52
+ compoundCommand.undo();
53
+ (0, chai_1.expect)(command1.undo.calledOnce).to.be.true;
54
+ (0, chai_1.expect)(command2.undo.calledOnce).to.be.true;
55
+ (0, chai_1.expect)(command3.undo.calledOnce).to.be.true;
56
+ (0, chai_1.expect)(command1.undo.calledAfter(command2.undo)).to.be.true;
57
+ (0, chai_1.expect)(command2.undo.calledAfter(command3.undo)).to.be.true;
58
+ });
59
+ it('Should redo partially undone subcommands in case of an error', () => {
60
+ command1.undo.throwsException();
61
+ (0, chai_1.expect)(() => compoundCommand.undo()).to.throw();
62
+ (0, chai_1.expect)(command1.undo.calledOnce).to.be.true;
63
+ (0, chai_1.expect)(command2.undo.calledOnce).to.be.true;
64
+ (0, chai_1.expect)(command3.undo.calledOnce).to.be.true;
65
+ (0, chai_1.expect)(command3.redo.calledOnce).to.be.true;
66
+ (0, chai_1.expect)(command2.redo.calledOnce).to.be.true;
67
+ });
68
+ });
69
+ describe('canUndo', () => {
70
+ it('should return true if all subcommands can be undone', () => {
71
+ var _a, _b, _c;
72
+ (_a = command1.canUndo) === null || _a === void 0 ? void 0 : _a.returns(true);
73
+ (_b = command2.canUndo) === null || _b === void 0 ? void 0 : _b.returns(true);
74
+ (_c = command3.canUndo) === null || _c === void 0 ? void 0 : _c.returns(true);
75
+ (0, chai_1.expect)(compoundCommand.canUndo()).to.be.true;
76
+ });
77
+ it('should return true if anyof the subcommands cannot be undone', () => {
78
+ var _a, _b, _c;
79
+ (_a = command1.canUndo) === null || _a === void 0 ? void 0 : _a.returns(true);
80
+ (_b = command2.canUndo) === null || _b === void 0 ? void 0 : _b.returns(false);
81
+ (_c = command3.canUndo) === null || _c === void 0 ? void 0 : _c.returns(true);
82
+ (0, chai_1.expect)(compoundCommand.canUndo()).to.be.true;
83
+ });
84
+ });
85
+ });
86
+ //# sourceMappingURL=command.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.spec.js","sourceRoot":"","sources":["../../../src/common/command/command.spec.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,75 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 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
+ import { GModelRootSchema } from '@eclipse-glsp/graph';
17
+ import { AnyObject } from '@eclipse-glsp/protocol';
18
+ import * as jsonPatch from 'fast-json-patch';
19
+ import { GModelSerializer } from '../features/model/gmodel-serializer';
20
+ import { ModelState } from '../features/model/model-state';
21
+ import { Command } from './command';
22
+ /**
23
+ * An abstract implementation for {@link Command} that should records changes made to a JSON object during execution.
24
+ * These changes are recorded in the form of json patches.
25
+ */
26
+ export declare abstract class AbstractRecordingCommand<JsonObject extends AnyObject> implements Command {
27
+ protected undoPatch?: jsonPatch.Operation[];
28
+ protected redoPatch?: jsonPatch.Operation[];
29
+ execute(): void;
30
+ /**
31
+ * Retrieves the current state of the JSON object. Is called right before and
32
+ * right after {@link AbstractRecordingCommand.doExecute} to derive the undo & redo patches.
33
+ * @returns The current state of the JSON object
34
+ */
35
+ protected abstract getJsonObject(): JsonObject;
36
+ /**
37
+ * The actual execution i.e. series of changes applied to the JSOn object that should be captured.
38
+ */
39
+ protected abstract doExecute(): void;
40
+ protected applyPatch(object: JsonObject, patch: jsonPatch.Operation[]): void;
41
+ /**
42
+ * Captures the original state of the JSON object before executing the command routine.
43
+ * This implementation cannot clone circular structures as it relies on `JSON.stringify`.
44
+ * @param object The object that should be cloned
45
+ * @returns A deep clone of the given object
46
+ */
47
+ protected deepClone(object: JsonObject): JsonObject;
48
+ undo(): void;
49
+ redo(): void;
50
+ canUndo(): boolean;
51
+ }
52
+ /**
53
+ * Simple base implementation of {@link AbstractRecordingCommand} that records the changes made to the given JSON object during
54
+ * the the given `doExecute` function.
55
+ */
56
+ export declare class RecordingCommand<JsonObject extends AnyObject = AnyObject> extends AbstractRecordingCommand<JsonObject> {
57
+ protected jsonObject: JsonObject;
58
+ protected doExecute: () => void;
59
+ constructor(jsonObject: JsonObject, doExecute: () => void);
60
+ protected getJsonObject(): JsonObject;
61
+ }
62
+ /**
63
+ * Simple base implementation of {@link AbstractRecordingCommand} that allows recording of changes made
64
+ * to the `GModelRoot` ({@link ModelState.root}) during the given `doExecute` function
65
+ */
66
+ export declare class GModelRecordingCommand extends AbstractRecordingCommand<GModelRootSchema> {
67
+ protected modelState: ModelState;
68
+ protected serializer: GModelSerializer;
69
+ protected doExecute: () => void;
70
+ constructor(modelState: ModelState, serializer: GModelSerializer, doExecute: () => void);
71
+ execute(): void;
72
+ protected getJsonObject(): GModelRootSchema;
73
+ protected applyPatch(rootSchema: GModelRootSchema, patch: jsonPatch.Operation[]): void;
74
+ }
75
+ //# sourceMappingURL=recording-command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recording-command.d.ts","sourceRoot":"","sources":["../../../src/common/command/recording-command.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAElF,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,KAAK,SAAS,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,qCAAqC,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC;;;GAGG;AACH,8BAAsB,wBAAwB,CAAC,UAAU,SAAS,SAAS,CAAE,YAAW,OAAO;IAC3F,SAAS,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,EAAE,CAAC;IAC5C,SAAS,CAAC,SAAS,CAAC,EAAE,SAAS,CAAC,SAAS,EAAE,CAAC;IAE5C,OAAO,IAAI,IAAI;IAQf;;;;OAIG;IACH,SAAS,CAAC,QAAQ,CAAC,aAAa,IAAI,UAAU;IAE9C;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,SAAS,IAAI,IAAI;IAEpC,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,CAAC,SAAS,EAAE,GAAG,IAAI;IAI5E;;;;;OAKG;IACH,SAAS,CAAC,SAAS,CAAC,MAAM,EAAE,UAAU,GAAG,UAAU;IAInD,IAAI,IAAI,IAAI;IAMZ,IAAI,IAAI,IAAI;IAMZ,OAAO,IAAI,OAAO;CAGrB;AAED;;;GAGG;AACH,qBAAa,gBAAgB,CAAC,UAAU,SAAS,SAAS,GAAG,SAAS,CAAE,SAAQ,wBAAwB,CAAC,UAAU,CAAC;IACpG,SAAS,CAAC,UAAU,EAAE,UAAU;IAAE,SAAS,CAAC,SAAS,EAAE,MAAM,IAAI;gBAAvD,UAAU,EAAE,UAAU,EAAY,SAAS,EAAE,MAAM,IAAI;IAI7E,SAAS,CAAC,aAAa,IAAI,UAAU;CAGxC;AAED;;;GAGG;AACH,qBAAa,sBAAuB,SAAQ,wBAAwB,CAAC,gBAAgB,CAAC;IACtE,SAAS,CAAC,UAAU,EAAE,UAAU;IAAE,SAAS,CAAC,UAAU,EAAE,gBAAgB;IAAE,SAAS,CAAC,SAAS,EAAE,MAAM,IAAI;gBAA/F,UAAU,EAAE,UAAU,EAAY,UAAU,EAAE,gBAAgB,EAAY,SAAS,EAAE,MAAM,IAAI;IAI5G,OAAO,IAAI,IAAI;IAKxB,SAAS,CAAC,aAAa,IAAI,gBAAgB;cAIxB,UAAU,CAAC,UAAU,EAAE,gBAAgB,EAAE,KAAK,EAAE,SAAS,CAAC,SAAS,EAAE,GAAG,IAAI;CAKlG"}
@@ -0,0 +1,99 @@
1
+ "use strict";
2
+ /********************************************************************************
3
+ * Copyright (c) 2023 EclipseSource and others.
4
+ *
5
+ * This program and the accompanying materials are made available under the
6
+ * terms of the Eclipse Public License v. 2.0 which is available at
7
+ * http://www.eclipse.org/legal/epl-2.0.
8
+ *
9
+ * This Source Code may also be made available under the following Secondary
10
+ * Licenses when the conditions for such availability set forth in the Eclipse
11
+ * Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ * with the GNU Classpath Exception which is available at
13
+ * https://www.gnu.org/software/classpath/license.html.
14
+ *
15
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
16
+ ********************************************************************************/
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ exports.GModelRecordingCommand = exports.RecordingCommand = exports.AbstractRecordingCommand = void 0;
19
+ const jsonPatch = require("fast-json-patch");
20
+ /**
21
+ * An abstract implementation for {@link Command} that should records changes made to a JSON object during execution.
22
+ * These changes are recorded in the form of json patches.
23
+ */
24
+ class AbstractRecordingCommand {
25
+ execute() {
26
+ const beforeState = this.deepClone(this.getJsonObject());
27
+ this.doExecute();
28
+ const afterState = this.getJsonObject();
29
+ this.undoPatch = jsonPatch.compare(afterState, beforeState);
30
+ this.redoPatch = jsonPatch.compare(beforeState, afterState);
31
+ }
32
+ applyPatch(object, patch) {
33
+ jsonPatch.applyPatch(object, patch, false, true);
34
+ }
35
+ /**
36
+ * Captures the original state of the JSON object before executing the command routine.
37
+ * This implementation cannot clone circular structures as it relies on `JSON.stringify`.
38
+ * @param object The object that should be cloned
39
+ * @returns A deep clone of the given object
40
+ */
41
+ deepClone(object) {
42
+ return jsonPatch.deepClone(object);
43
+ }
44
+ undo() {
45
+ if (this.undoPatch) {
46
+ this.applyPatch(this.getJsonObject(), this.undoPatch);
47
+ }
48
+ }
49
+ redo() {
50
+ if (this.redoPatch) {
51
+ this.applyPatch(this.getJsonObject(), this.redoPatch);
52
+ }
53
+ }
54
+ canUndo() {
55
+ return !!this.undoPatch && !!this.redoPatch;
56
+ }
57
+ }
58
+ exports.AbstractRecordingCommand = AbstractRecordingCommand;
59
+ /**
60
+ * Simple base implementation of {@link AbstractRecordingCommand} that records the changes made to the given JSON object during
61
+ * the the given `doExecute` function.
62
+ */
63
+ class RecordingCommand extends AbstractRecordingCommand {
64
+ constructor(jsonObject, doExecute) {
65
+ super();
66
+ this.jsonObject = jsonObject;
67
+ this.doExecute = doExecute;
68
+ }
69
+ getJsonObject() {
70
+ return this.jsonObject;
71
+ }
72
+ }
73
+ exports.RecordingCommand = RecordingCommand;
74
+ /**
75
+ * Simple base implementation of {@link AbstractRecordingCommand} that allows recording of changes made
76
+ * to the `GModelRoot` ({@link ModelState.root}) during the given `doExecute` function
77
+ */
78
+ class GModelRecordingCommand extends AbstractRecordingCommand {
79
+ constructor(modelState, serializer, doExecute) {
80
+ super();
81
+ this.modelState = modelState;
82
+ this.serializer = serializer;
83
+ this.doExecute = doExecute;
84
+ }
85
+ execute() {
86
+ super.execute();
87
+ this.modelState.index.indexRoot(this.modelState.root);
88
+ }
89
+ getJsonObject() {
90
+ return this.serializer.createSchema(this.modelState.root);
91
+ }
92
+ applyPatch(rootSchema, patch) {
93
+ super.applyPatch(rootSchema, patch);
94
+ const newRoot = this.serializer.createRoot(rootSchema);
95
+ this.modelState.updateRoot(newRoot);
96
+ }
97
+ }
98
+ exports.GModelRecordingCommand = GModelRecordingCommand;
99
+ //# sourceMappingURL=recording-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recording-command.js","sourceRoot":"","sources":["../../../src/common/command/recording-command.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;kFAckF;;;AAIlF,6CAA6C;AAI7C;;;GAGG;AACH,MAAsB,wBAAwB;IAI1C,OAAO;QACH,MAAM,WAAW,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;QACzD,IAAI,CAAC,SAAS,EAAE,CAAC;QACjB,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QACxC,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC;QAC5D,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC,OAAO,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IAChE,CAAC;IAcS,UAAU,CAAC,MAAkB,EAAE,KAA4B;QACjE,SAAS,CAAC,UAAU,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;IACrD,CAAC;IAED;;;;;OAKG;IACO,SAAS,CAAC,MAAkB;QAClC,OAAO,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAED,IAAI;QACA,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;SACzD;IACL,CAAC;IAED,IAAI;QACA,IAAI,IAAI,CAAC,SAAS,EAAE;YAChB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;SACzD;IACL,CAAC;IAED,OAAO;QACH,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;IAChD,CAAC;CACJ;AArDD,4DAqDC;AAED;;;GAGG;AACH,MAAa,gBAA2D,SAAQ,wBAAoC;IAChH,YAAsB,UAAsB,EAAY,SAAqB;QACzE,KAAK,EAAE,CAAC;QADU,eAAU,GAAV,UAAU,CAAY;QAAY,cAAS,GAAT,SAAS,CAAY;IAE7E,CAAC;IAES,aAAa;QACnB,OAAO,IAAI,CAAC,UAAU,CAAC;IAC3B,CAAC;CACJ;AARD,4CAQC;AAED;;;GAGG;AACH,MAAa,sBAAuB,SAAQ,wBAA0C;IAClF,YAAsB,UAAsB,EAAY,UAA4B,EAAY,SAAqB;QACjH,KAAK,EAAE,CAAC;QADU,eAAU,GAAV,UAAU,CAAY;QAAY,eAAU,GAAV,UAAU,CAAkB;QAAY,cAAS,GAAT,SAAS,CAAY;IAErH,CAAC;IAEQ,OAAO;QACZ,KAAK,CAAC,OAAO,EAAE,CAAC;QAChB,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC1D,CAAC;IAES,aAAa;QACnB,OAAO,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC9D,CAAC;IAEkB,UAAU,CAAC,UAA4B,EAAE,KAA4B;QACpF,KAAK,CAAC,UAAU,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;QACpC,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QACvD,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC;CACJ;AAnBD,wDAmBC"}
@@ -0,0 +1,17 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 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
+ export {};
17
+ //# sourceMappingURL=recording-command.spec.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recording-command.spec.d.ts","sourceRoot":"","sources":["../../../src/common/command/recording-command.spec.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF"}
@@ -0,0 +1,62 @@
1
+ "use strict";
2
+ /********************************************************************************
3
+ * Copyright (c) 2023 EclipseSource and others.
4
+ *
5
+ * This program and the accompanying materials are made available under the
6
+ * terms of the Eclipse Public License v. 2.0 which is available at
7
+ * http://www.eclipse.org/legal/epl-2.0.
8
+ *
9
+ * This Source Code may also be made available under the following Secondary
10
+ * Licenses when the conditions for such availability set forth in the Eclipse
11
+ * Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ * with the GNU Classpath Exception which is available at
13
+ * https://www.gnu.org/software/classpath/license.html.
14
+ *
15
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
16
+ ********************************************************************************/
17
+ Object.defineProperty(exports, "__esModule", { value: true });
18
+ const chai_1 = require("chai");
19
+ const recording_command_1 = require("./recording-command");
20
+ let jsonObject;
21
+ describe('RecordingCommand', () => {
22
+ let beforeState;
23
+ beforeEach(() => {
24
+ jsonObject = {
25
+ string: 'foo',
26
+ number: 0,
27
+ flag: true
28
+ };
29
+ beforeState = JSON.parse(JSON.stringify(jsonObject));
30
+ });
31
+ it('should be undoable after execution', () => {
32
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
33
+ const command = new recording_command_1.RecordingCommand(jsonObject, () => { });
34
+ (0, chai_1.expect)(command.canUndo()).to.be.false;
35
+ command.execute();
36
+ (0, chai_1.expect)(command.canUndo()).to.be.true;
37
+ });
38
+ it('should restore the pre execution state when undo is called', () => {
39
+ const command = new recording_command_1.RecordingCommand(jsonObject, () => {
40
+ jsonObject.string = 'bar';
41
+ jsonObject.flag = false;
42
+ jsonObject.maybe = { hello: 'world' };
43
+ });
44
+ command.execute();
45
+ (0, chai_1.expect)(jsonObject).to.not.be.deep.equals(beforeState);
46
+ command.undo();
47
+ (0, chai_1.expect)(jsonObject).to.be.deep.equals(beforeState);
48
+ });
49
+ it('should restore the post execution state when redo is called', () => {
50
+ const command = new recording_command_1.RecordingCommand(jsonObject, () => {
51
+ jsonObject.string = 'bar';
52
+ jsonObject.flag = false;
53
+ jsonObject.maybe = { hello: 'world' };
54
+ });
55
+ command.execute();
56
+ const afterState = JSON.parse(JSON.stringify(jsonObject));
57
+ jsonObject = JSON.parse(JSON.stringify(afterState));
58
+ command.redo();
59
+ (0, chai_1.expect)(jsonObject).to.be.deep.equals(afterState);
60
+ });
61
+ });
62
+ //# sourceMappingURL=recording-command.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"recording-command.spec.js","sourceRoot":"","sources":["../../../src/common/command/recording-command.spec.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;kFAckF;;AAGlF,+BAA8B;AAC9B,2DAAuD;AASvD,IAAI,UAAqB,CAAC;AAE1B,QAAQ,CAAC,kBAAkB,EAAE,GAAG,EAAE;IAC9B,IAAI,WAAsB,CAAC;IAE3B,UAAU,CAAC,GAAG,EAAE;QACZ,UAAU,GAAG;YACT,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,CAAC;YACT,IAAI,EAAE,IAAI;SACb,CAAC;QACF,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;IACzD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC1C,gEAAgE;QAChE,MAAM,OAAO,GAAG,IAAI,oCAAgB,CAAC,UAAU,EAAE,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC3D,IAAA,aAAM,EAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QACtC,OAAO,CAAC,OAAO,EAAE,CAAC;QAClB,IAAA,aAAM,EAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4DAA4D,EAAE,GAAG,EAAE;QAClE,MAAM,OAAO,GAAG,IAAI,oCAAgB,CAAC,UAAU,EAAE,GAAG,EAAE;YAClD,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC;YAC1B,UAAU,CAAC,IAAI,GAAG,KAAK,CAAC;YACxB,UAAU,CAAC,KAAK,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;QAC1C,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,OAAO,EAAE,CAAC;QAClB,IAAA,aAAM,EAAC,UAAU,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACtD,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,IAAA,aAAM,EAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACtD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6DAA6D,EAAE,GAAG,EAAE;QACnE,MAAM,OAAO,GAAG,IAAI,oCAAgB,CAAC,UAAU,EAAE,GAAG,EAAE;YAClD,UAAU,CAAC,MAAM,GAAG,KAAK,CAAC;YAC1B,UAAU,CAAC,IAAI,GAAG,KAAK,CAAC;YACxB,UAAU,CAAC,KAAK,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;QAC1C,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,OAAO,EAAE,CAAC;QAClB,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;QAC1D,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC;QACpD,OAAO,CAAC,IAAI,EAAE,CAAC;QACf,IAAA,aAAM,EAAC,UAAU,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACrD,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -0,0 +1,28 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 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
+ import { Action, MaybePromise } from '@eclipse-glsp/protocol';
17
+ import { ActionHandler } from '../actions/action-handler';
18
+ import { ModelSubmissionHandler } from '../features/model/model-submission-handler';
19
+ import { CommandStack } from './command-stack';
20
+ export declare class UndoRedoActionHandler implements ActionHandler {
21
+ protected commandStack: CommandStack;
22
+ protected modelSubmissionHandler: ModelSubmissionHandler;
23
+ readonly actionKinds: string[];
24
+ execute(action: Action): MaybePromise<Action[]>;
25
+ protected undo(): MaybePromise<Action[]>;
26
+ protected redo(): MaybePromise<Action[]>;
27
+ }
28
+ //# sourceMappingURL=undo-redo-action-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"undo-redo-action-handler.d.ts","sourceRoot":"","sources":["../../../src/common/command/undo-redo-action-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAElF,OAAO,EAAE,MAAM,EAAE,YAAY,EAA0B,MAAM,wBAAwB,CAAC;AAEtF,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,4CAA4C,CAAC;AACpF,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAE/C,qBACa,qBAAsB,YAAW,aAAa;IAEvD,SAAS,CAAC,YAAY,EAAE,YAAY,CAAC;IAGrC,SAAS,CAAC,sBAAsB,EAAE,sBAAsB,CAAC;IAEzD,QAAQ,CAAC,WAAW,WAAsC;IAE1D,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC;IAS/C,SAAS,CAAC,IAAI,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;IAQxC,SAAS,CAAC,IAAI,IAAI,YAAY,CAAC,MAAM,EAAE,CAAC;CAO3C"}
@@ -0,0 +1,72 @@
1
+ "use strict";
2
+ /********************************************************************************
3
+ * Copyright (c) 2023 EclipseSource and others.
4
+ *
5
+ * This program and the accompanying materials are made available under the
6
+ * terms of the Eclipse Public License v. 2.0 which is available at
7
+ * http://www.eclipse.org/legal/epl-2.0.
8
+ *
9
+ * This Source Code may also be made available under the following Secondary
10
+ * Licenses when the conditions for such availability set forth in the Eclipse
11
+ * Public License v. 2.0 are satisfied: GNU General Public License, version 2
12
+ * with the GNU Classpath Exception which is available at
13
+ * https://www.gnu.org/software/classpath/license.html.
14
+ *
15
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
16
+ ********************************************************************************/
17
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
18
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
19
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
20
+ 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;
21
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
22
+ };
23
+ var __metadata = (this && this.__metadata) || function (k, v) {
24
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
25
+ };
26
+ Object.defineProperty(exports, "__esModule", { value: true });
27
+ exports.UndoRedoActionHandler = void 0;
28
+ const protocol_1 = require("@eclipse-glsp/protocol");
29
+ const inversify_1 = require("inversify");
30
+ const model_submission_handler_1 = require("../features/model/model-submission-handler");
31
+ const command_stack_1 = require("./command-stack");
32
+ let UndoRedoActionHandler = class UndoRedoActionHandler {
33
+ constructor() {
34
+ this.actionKinds = [protocol_1.UndoAction.KIND, protocol_1.RedoAction.KIND];
35
+ }
36
+ execute(action) {
37
+ if (protocol_1.UndoAction.is(action)) {
38
+ return this.undo();
39
+ }
40
+ else if (protocol_1.RedoAction.is(action)) {
41
+ return this.redo();
42
+ }
43
+ return [];
44
+ }
45
+ undo() {
46
+ if (this.commandStack.canUndo()) {
47
+ this.commandStack.undo();
48
+ return this.modelSubmissionHandler.submitModel('undo');
49
+ }
50
+ return [];
51
+ }
52
+ redo() {
53
+ if (this.commandStack.canRedo()) {
54
+ this.commandStack.redo();
55
+ return this.modelSubmissionHandler.submitModel('redo');
56
+ }
57
+ return [];
58
+ }
59
+ };
60
+ __decorate([
61
+ (0, inversify_1.inject)(command_stack_1.CommandStack),
62
+ __metadata("design:type", Object)
63
+ ], UndoRedoActionHandler.prototype, "commandStack", void 0);
64
+ __decorate([
65
+ (0, inversify_1.inject)(model_submission_handler_1.ModelSubmissionHandler),
66
+ __metadata("design:type", model_submission_handler_1.ModelSubmissionHandler)
67
+ ], UndoRedoActionHandler.prototype, "modelSubmissionHandler", void 0);
68
+ UndoRedoActionHandler = __decorate([
69
+ (0, inversify_1.injectable)()
70
+ ], UndoRedoActionHandler);
71
+ exports.UndoRedoActionHandler = UndoRedoActionHandler;
72
+ //# sourceMappingURL=undo-redo-action-handler.js.map