@hydranium/glsp-server 1.0.0-next.31 → 1.0.0-next.313

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 (217) hide show
  1. package/README.md +80 -88
  2. package/lib/browser/start-glsp-server-in-worker.d.ts +43 -42
  3. package/lib/browser/start-glsp-server-in-worker.d.ts.map +1 -1
  4. package/lib/browser/start-glsp-server-in-worker.js +62 -13
  5. package/lib/browser/start-glsp-server-in-worker.js.map +1 -1
  6. package/lib/command/diagram-edit-dropped-error.d.ts +31 -0
  7. package/lib/command/diagram-edit-dropped-error.d.ts.map +1 -0
  8. package/lib/command/diagram-edit-dropped-error.js +48 -0
  9. package/lib/command/diagram-edit-dropped-error.js.map +1 -0
  10. package/lib/command/hydranium-glsp-command-stack.d.ts +33 -0
  11. package/lib/command/hydranium-glsp-command-stack.d.ts.map +1 -0
  12. package/lib/command/hydranium-glsp-command-stack.js +63 -0
  13. package/lib/command/hydranium-glsp-command-stack.js.map +1 -0
  14. package/lib/command/hydranium-glsp-operation-action-handler.d.ts +64 -0
  15. package/lib/command/hydranium-glsp-operation-action-handler.d.ts.map +1 -0
  16. package/lib/command/hydranium-glsp-operation-action-handler.js +142 -0
  17. package/lib/command/hydranium-glsp-operation-action-handler.js.map +1 -0
  18. package/lib/command/hydranium-glsp-operation-command.d.ts +250 -0
  19. package/lib/command/hydranium-glsp-operation-command.d.ts.map +1 -0
  20. package/lib/command/hydranium-glsp-operation-command.js +491 -0
  21. package/lib/command/hydranium-glsp-operation-command.js.map +1 -0
  22. package/lib/command/hydranium-glsp-recording-command.d.ts +26 -87
  23. package/lib/command/hydranium-glsp-recording-command.d.ts.map +1 -1
  24. package/lib/command/hydranium-glsp-recording-command.js +40 -117
  25. package/lib/command/hydranium-glsp-recording-command.js.map +1 -1
  26. package/lib/command/hydranium-glsp-undo-redo-action-handler.d.ts +23 -0
  27. package/lib/command/hydranium-glsp-undo-redo-action-handler.d.ts.map +1 -0
  28. package/lib/command/hydranium-glsp-undo-redo-action-handler.js +41 -0
  29. package/lib/command/hydranium-glsp-undo-redo-action-handler.js.map +1 -0
  30. package/lib/command/index.d.ts +5 -0
  31. package/lib/command/index.d.ts.map +1 -1
  32. package/lib/command/index.js +5 -0
  33. package/lib/command/index.js.map +1 -1
  34. package/lib/computed-bounds/hydranium-glsp-computed-bounds-action-handler.d.ts +1 -1
  35. package/lib/computed-bounds/hydranium-glsp-computed-bounds-action-handler.d.ts.map +1 -1
  36. package/lib/computed-bounds/hydranium-glsp-computed-bounds-action-handler.js +2 -2
  37. package/lib/computed-bounds/hydranium-glsp-computed-bounds-action-handler.js.map +1 -1
  38. package/lib/dispatcher/server-action-dispatcher.d.ts +25 -24
  39. package/lib/dispatcher/server-action-dispatcher.d.ts.map +1 -1
  40. package/lib/dispatcher/server-action-dispatcher.js +38 -26
  41. package/lib/dispatcher/server-action-dispatcher.js.map +1 -1
  42. package/lib/index.d.ts +1 -0
  43. package/lib/index.d.ts.map +1 -1
  44. package/lib/index.js +1 -0
  45. package/lib/index.js.map +1 -1
  46. package/lib/launcher/abstract-hydranium-glsp-diagram-module.d.ts +35 -59
  47. package/lib/launcher/abstract-hydranium-glsp-diagram-module.d.ts.map +1 -1
  48. package/lib/launcher/abstract-hydranium-glsp-diagram-module.js +60 -71
  49. package/lib/launcher/abstract-hydranium-glsp-diagram-module.js.map +1 -1
  50. package/lib/launcher/drop-notifications-to-gone-client.d.ts +23 -0
  51. package/lib/launcher/drop-notifications-to-gone-client.d.ts.map +1 -0
  52. package/lib/launcher/drop-notifications-to-gone-client.js +43 -0
  53. package/lib/launcher/drop-notifications-to-gone-client.js.map +1 -0
  54. package/lib/launcher/glsp-app-module.d.ts +1 -2
  55. package/lib/launcher/glsp-app-module.d.ts.map +1 -1
  56. package/lib/launcher/glsp-app-module.js.map +1 -1
  57. package/lib/launcher/glsp-connection-logger.d.ts +19 -0
  58. package/lib/launcher/glsp-connection-logger.d.ts.map +1 -0
  59. package/lib/launcher/glsp-connection-logger.js +24 -0
  60. package/lib/launcher/glsp-connection-logger.js.map +1 -0
  61. package/lib/launcher/glsp-server-overrides.d.ts +10 -8
  62. package/lib/launcher/glsp-server-overrides.d.ts.map +1 -1
  63. package/lib/launcher/glsp-server-overrides.js +25 -11
  64. package/lib/launcher/glsp-server-overrides.js.map +1 -1
  65. package/lib/launcher/hydranium-glsp-server.d.ts +60 -15
  66. package/lib/launcher/hydranium-glsp-server.d.ts.map +1 -1
  67. package/lib/launcher/hydranium-glsp-server.js +145 -22
  68. package/lib/launcher/hydranium-glsp-server.js.map +1 -1
  69. package/lib/launcher/index.d.ts +2 -0
  70. package/lib/launcher/index.d.ts.map +1 -1
  71. package/lib/launcher/index.js +5 -4
  72. package/lib/launcher/index.js.map +1 -1
  73. package/lib/logging/glsp-client-logger.d.ts +10 -6
  74. package/lib/logging/glsp-client-logger.d.ts.map +1 -1
  75. package/lib/logging/glsp-client-logger.js +14 -7
  76. package/lib/logging/glsp-client-logger.js.map +1 -1
  77. package/lib/messages/index.d.ts +11 -6
  78. package/lib/messages/index.d.ts.map +1 -1
  79. package/lib/messages/index.js +11 -6
  80. package/lib/messages/index.js.map +1 -1
  81. package/lib/node/start-glsp-server.d.ts +50 -15
  82. package/lib/node/start-glsp-server.d.ts.map +1 -1
  83. package/lib/node/start-glsp-server.js +97 -30
  84. package/lib/node/start-glsp-server.js.map +1 -1
  85. package/lib/state/abstract-hydranium-glsp-state.d.ts +326 -102
  86. package/lib/state/abstract-hydranium-glsp-state.d.ts.map +1 -1
  87. package/lib/state/abstract-hydranium-glsp-state.js +529 -139
  88. package/lib/state/abstract-hydranium-glsp-state.js.map +1 -1
  89. package/lib/state/diagram-status.d.ts +38 -0
  90. package/lib/state/diagram-status.d.ts.map +1 -0
  91. package/lib/state/diagram-status.js +27 -0
  92. package/lib/state/diagram-status.js.map +1 -0
  93. package/lib/state/full-text-hydranium-glsp-state.d.ts +22 -9
  94. package/lib/state/full-text-hydranium-glsp-state.d.ts.map +1 -1
  95. package/lib/state/full-text-hydranium-glsp-state.js +45 -18
  96. package/lib/state/full-text-hydranium-glsp-state.js.map +1 -1
  97. package/lib/state/hydranium-glsp-index.d.ts +40 -29
  98. package/lib/state/hydranium-glsp-index.d.ts.map +1 -1
  99. package/lib/state/hydranium-glsp-index.js +82 -45
  100. package/lib/state/hydranium-glsp-index.js.map +1 -1
  101. package/lib/state/hydranium-shared-core-services.d.ts +16 -29
  102. package/lib/state/hydranium-shared-core-services.d.ts.map +1 -1
  103. package/lib/state/hydranium-shared-core-services.js +15 -28
  104. package/lib/state/hydranium-shared-core-services.js.map +1 -1
  105. package/lib/state/index.d.ts +1 -0
  106. package/lib/state/index.d.ts.map +1 -1
  107. package/lib/state/index.js +1 -0
  108. package/lib/state/index.js.map +1 -1
  109. package/lib/state/model-ready-timeout-error.d.ts.map +1 -1
  110. package/lib/state/model-ready-timeout-error.js.map +1 -1
  111. package/lib/state/reconcile-source-model-write.d.ts +13 -27
  112. package/lib/state/reconcile-source-model-write.d.ts.map +1 -1
  113. package/lib/state/reconcile-source-model-write.js +44 -32
  114. package/lib/state/reconcile-source-model-write.js.map +1 -1
  115. package/lib/state/reconciling-multi-document-glsp-state.d.ts +125 -69
  116. package/lib/state/reconciling-multi-document-glsp-state.d.ts.map +1 -1
  117. package/lib/state/reconciling-multi-document-glsp-state.js +242 -100
  118. package/lib/state/reconciling-multi-document-glsp-state.js.map +1 -1
  119. package/lib/state/reconciling-transfer-hydranium-glsp-state.d.ts +36 -28
  120. package/lib/state/reconciling-transfer-hydranium-glsp-state.d.ts.map +1 -1
  121. package/lib/state/reconciling-transfer-hydranium-glsp-state.js +59 -42
  122. package/lib/state/reconciling-transfer-hydranium-glsp-state.js.map +1 -1
  123. package/lib/status/diagram-status-reporter.d.ts +44 -0
  124. package/lib/status/diagram-status-reporter.d.ts.map +1 -0
  125. package/lib/status/diagram-status-reporter.js +88 -0
  126. package/lib/status/diagram-status-reporter.js.map +1 -0
  127. package/lib/status/hydranium-glsp-request-model-action-handler.d.ts +27 -0
  128. package/lib/status/hydranium-glsp-request-model-action-handler.d.ts.map +1 -0
  129. package/lib/status/hydranium-glsp-request-model-action-handler.js +52 -0
  130. package/lib/status/hydranium-glsp-request-model-action-handler.js.map +1 -0
  131. package/lib/status/hydranium-glsp-set-edit-mode-action-handler.d.ts +27 -0
  132. package/lib/status/hydranium-glsp-set-edit-mode-action-handler.d.ts.map +1 -0
  133. package/lib/status/hydranium-glsp-set-edit-mode-action-handler.js +53 -0
  134. package/lib/status/hydranium-glsp-set-edit-mode-action-handler.js.map +1 -0
  135. package/lib/status/index.d.ts +12 -0
  136. package/lib/status/index.d.ts.map +1 -0
  137. package/lib/status/index.js +12 -0
  138. package/lib/status/index.js.map +1 -0
  139. package/lib/storage/hydranium-glsp-request-save-model-action-handler.d.ts +30 -0
  140. package/lib/storage/hydranium-glsp-request-save-model-action-handler.d.ts.map +1 -0
  141. package/lib/storage/hydranium-glsp-request-save-model-action-handler.js +47 -0
  142. package/lib/storage/hydranium-glsp-request-save-model-action-handler.js.map +1 -0
  143. package/lib/storage/hydranium-glsp-storage.d.ts +324 -143
  144. package/lib/storage/hydranium-glsp-storage.d.ts.map +1 -1
  145. package/lib/storage/hydranium-glsp-storage.js +569 -213
  146. package/lib/storage/hydranium-glsp-storage.js.map +1 -1
  147. package/lib/storage/index.d.ts +2 -1
  148. package/lib/storage/index.d.ts.map +1 -1
  149. package/lib/storage/index.js +2 -1
  150. package/lib/storage/index.js.map +1 -1
  151. package/lib/storage/save-delivery-policy.d.ts +51 -0
  152. package/lib/storage/save-delivery-policy.d.ts.map +1 -0
  153. package/lib/storage/{save-conflict-policy.js → save-delivery-policy.js} +7 -8
  154. package/lib/storage/save-delivery-policy.js.map +1 -0
  155. package/lib/submission/hydranium-glsp-submission-handler.d.ts +44 -4
  156. package/lib/submission/hydranium-glsp-submission-handler.d.ts.map +1 -1
  157. package/lib/submission/hydranium-glsp-submission-handler.js +82 -6
  158. package/lib/submission/hydranium-glsp-submission-handler.js.map +1 -1
  159. package/lib/testing/glsp-harness.d.ts +34 -7
  160. package/lib/testing/glsp-harness.d.ts.map +1 -1
  161. package/lib/testing/glsp-harness.js +47 -19
  162. package/lib/testing/glsp-harness.js.map +1 -1
  163. package/lib/validation/diagnostic-markers.d.ts +3 -3
  164. package/lib/validation/diagnostic-markers.d.ts.map +1 -1
  165. package/lib/validation/diagnostic-markers.js +1 -1
  166. package/lib/validation/diagnostic-markers.js.map +1 -1
  167. package/lib/validation/hydranium-glsp-model-validator.d.ts +1 -2
  168. package/lib/validation/hydranium-glsp-model-validator.d.ts.map +1 -1
  169. package/lib/validation/hydranium-glsp-model-validator.js +1 -1
  170. package/lib/validation/hydranium-glsp-model-validator.js.map +1 -1
  171. package/package.json +31 -52
  172. package/src/browser/start-glsp-server-in-worker.ts +79 -51
  173. package/src/command/diagram-edit-dropped-error.ts +51 -0
  174. package/src/command/hydranium-glsp-command-stack.ts +47 -0
  175. package/src/command/hydranium-glsp-operation-action-handler.ts +141 -0
  176. package/src/command/hydranium-glsp-operation-command.ts +602 -0
  177. package/src/command/hydranium-glsp-recording-command.ts +40 -121
  178. package/src/command/hydranium-glsp-undo-redo-action-handler.ts +29 -0
  179. package/src/command/index.ts +10 -0
  180. package/src/computed-bounds/hydranium-glsp-computed-bounds-action-handler.ts +2 -2
  181. package/src/dispatcher/server-action-dispatcher.ts +39 -31
  182. package/src/index.ts +1 -0
  183. package/src/launcher/abstract-hydranium-glsp-diagram-module.ts +79 -91
  184. package/src/launcher/drop-notifications-to-gone-client.ts +47 -0
  185. package/src/launcher/glsp-app-module.ts +1 -2
  186. package/src/launcher/glsp-connection-logger.ts +27 -0
  187. package/src/launcher/glsp-server-overrides.ts +27 -11
  188. package/src/launcher/hydranium-glsp-server.ts +153 -23
  189. package/src/launcher/index.ts +5 -4
  190. package/src/logging/glsp-client-logger.ts +16 -9
  191. package/src/messages/index.ts +16 -6
  192. package/src/node/start-glsp-server.ts +133 -40
  193. package/src/state/abstract-hydranium-glsp-state.ts +609 -154
  194. package/src/state/diagram-status.ts +41 -0
  195. package/src/state/full-text-hydranium-glsp-state.ts +46 -18
  196. package/src/state/hydranium-glsp-index.ts +85 -41
  197. package/src/state/hydranium-shared-core-services.ts +16 -29
  198. package/src/state/index.ts +1 -0
  199. package/src/state/reconcile-source-model-write.ts +51 -53
  200. package/src/state/reconciling-multi-document-glsp-state.ts +276 -102
  201. package/src/state/reconciling-transfer-hydranium-glsp-state.ts +67 -45
  202. package/src/status/diagram-status-reporter.ts +106 -0
  203. package/src/status/hydranium-glsp-request-model-action-handler.ts +43 -0
  204. package/src/status/hydranium-glsp-set-edit-mode-action-handler.ts +38 -0
  205. package/src/status/index.ts +12 -0
  206. package/src/storage/hydranium-glsp-request-save-model-action-handler.ts +40 -0
  207. package/src/storage/hydranium-glsp-storage.ts +647 -223
  208. package/src/storage/index.ts +2 -1
  209. package/src/storage/save-delivery-policy.ts +49 -0
  210. package/src/submission/hydranium-glsp-submission-handler.ts +91 -5
  211. package/src/testing/glsp-harness.ts +67 -25
  212. package/src/validation/diagnostic-markers.ts +3 -3
  213. package/src/validation/hydranium-glsp-model-validator.ts +4 -5
  214. package/lib/storage/save-conflict-policy.d.ts +0 -56
  215. package/lib/storage/save-conflict-policy.d.ts.map +0 -1
  216. package/lib/storage/save-conflict-policy.js.map +0 -1
  217. package/src/storage/save-conflict-policy.ts +0 -52
@@ -1 +1 @@
1
- {"version":3,"file":"hydranium-glsp-index.js","sourceRoot":"","sources":["../../src/state/hydranium-glsp-index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hydranium-glsp-index.js","sourceRoot":"","sources":["../../src/state/hydranium-glsp-index.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@
6
6
  *
7
7
  * SPDX-License-Identifier: MIT
8
8
  ********************************************************************************/
9
- import type { ServerLanguageServices, ServerSharedServices } from '@hydranium/core';
9
+ import type { ServerSharedServices } from '@hydranium/core';
10
10
  import type { ConflictResolver, Tracer } from '@hydranium/protocol';
11
11
  /**
12
12
  * Inversify service-identifier registry for the framework services the
@@ -16,37 +16,23 @@ import type { ConflictResolver, Tracer } from '@hydranium/protocol';
16
16
  * framework hands around via plain constructor arguments.
17
17
  *
18
18
  * Every token here is a service whose value is **fixed for the container tier
19
- * that binds it** — process-wide shared services, a per-session conflict
20
- * policy, the grammar a diagram type edits. That is the whole membership rule,
21
- * and it is why the registry is short: see below for what deliberately does
22
- * NOT get a token.
19
+ * that binds it**: the shared services and the conflict policy for the
20
+ * process, the tracer for each request. That is the whole membership rule, and
21
+ * it is why the registry is short: see below for what deliberately does NOT
22
+ * get a token.
23
23
  *
24
24
  * Grouped under one object (rather than top-level `Hydranium<Role>` consts)
25
25
  * so the token identity is decoupled from the implementation class name.
26
26
  * Mirrors GLSP's own `TYPES` registry idiom.
27
27
  *
28
- * Bound by the adopter from their services trees — the app-tier ones directly,
29
- * the session-tier language by declaring a grammar on the diagram module.
30
- * Inject with the real service type as the field type.
31
- *
32
- * **Split by tier, because GLSP has no language tier.** GLSP's containers are
33
- * app (per process) -> server (per connection) -> session (per open diagram);
34
- * Langium's are shared (per process) -> language (per grammar, routed by URI).
35
- * Only the outermost pair line up. A per-language service therefore CANNOT be
36
- * bound at the app tier — that container is built before any document exists,
37
- * so it can only ever hold one grammar's services. The tokens below are split
38
- * accordingly:
28
+ * `SharedCoreServices` and `ConflictResolver` are bound by
29
+ * `HydraniumGlspAppModule`, `Tracer` by the launchers. Inject each with the
30
+ * real service type as the field type.
39
31
  *
40
32
  * - **SharedCoreServices** — the framework's Langium-style shared services
41
33
  * tree ({@link ServerSharedServices}); the services-tree root that state /
42
34
  * index classes inject. Bound once at the app tier. Carries
43
35
  * `ServiceRegistry`, which is how everything below reaches a language.
44
- * - **DiagramLanguage** — the {@link ServerLanguageServices} of the grammar a
45
- * diagram type edits, bound at the SESSION tier by
46
- * `AbstractHydraniumGlspDiagramModule` from its declared `declareLanguage()`.
47
- * Static (a diagram type has one grammar), so it is safe for the eagerly
48
- * constructed handlers GLSP builds at `InitializeClientSession`. Read it
49
- * through `AbstractHydraniumGlspState.diagramLanguage`.
50
36
  * - **ConflictResolver** — the policy the GLSP state consults when a write
51
37
  * (forward-write, undo, redo, save) races a foreign edit.
52
38
  * `HydraniumGlspAppModule` binds it to `options.conflictResolver`
@@ -59,8 +45,14 @@ import type { ConflictResolver, Tracer } from '@hydranium/protocol';
59
45
  * component — no manual `for(...)`. The non-injectable recording command,
60
46
  * which can't inject, borrows the state's `tracer` getter instead.
61
47
  *
62
- * **No per-language SERVICE has a token — only the language does.** There is
63
- * no `ElementKeyProvider`, `NameProvider`, `ScopeProvider` or
48
+ * **No language and no per-language service has a token, because GLSP has no
49
+ * language tier.** GLSP's containers are app (per process) -> server (per
50
+ * connection) -> session (per open diagram); Langium's are shared (per
51
+ * process) -> language (per grammar, routed by URI). Only the outermost pair
52
+ * line up. The app container is built before any document exists, and a
53
+ * session's handlers before its document is loaded, so neither knows the
54
+ * diagram's language: the one its loaded document routes to. Nor is there an
55
+ * `ElementKeyProvider`, `NameProvider`, `ScopeProvider` or
64
56
  * `CandidateProvider` symbol, because every one of them is keyed by a document
65
57
  * that the container cannot know: the target node's, for naming and keying;
66
58
  * the one a reference is WRITTEN in, for scope and candidates. A GLSP
@@ -76,14 +68,9 @@ import type { ConflictResolver, Tracer } from '@hydranium/protocol';
76
68
  * reference written on the canvas, `modelState.languageServicesFor(node)` for
77
69
  * anything reached through a reference. `ServiceRegistry.getServicesFor(target)`
78
70
  * serves the same purpose where no model state is at hand.
79
- *
80
- * The app-tier tokens are bound by `HydraniumGlspAppModule`, the
81
- * session-tier one by `AbstractHydraniumGlspDiagramModule`. A multi-grammar
82
- * adopter declares a language per diagram module and needs nothing else.
83
71
  */
84
72
  export declare const HydraniumTypes: {
85
73
  readonly SharedCoreServices: import("inversify").interfaces.ServiceIdentifier<ServerSharedServices>;
86
- readonly DiagramLanguage: import("inversify").interfaces.ServiceIdentifier<ServerLanguageServices>;
87
74
  readonly ConflictResolver: import("inversify").interfaces.ServiceIdentifier<ConflictResolver>;
88
75
  readonly Tracer: import("inversify").interfaces.ServiceIdentifier<Tracer>;
89
76
  };
@@ -1 +1 @@
1
- {"version":3,"file":"hydranium-shared-core-services.d.ts","sourceRoot":"","sources":["../../src/state/hydranium-shared-core-services.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,KAAK,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACpF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAGpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwEG;AACH,eAAO,MAAM,cAAc;;;;;CAKjB,CAAC"}
1
+ {"version":3,"file":"hydranium-shared-core-services.d.ts","sourceRoot":"","sources":["../../src/state/hydranium-shared-core-services.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAGpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AACH,eAAO,MAAM,cAAc;aACxB,kBAAkB;aAClB,gBAAgB;aAChB,MAAM;CACC,CAAC"}
@@ -15,37 +15,23 @@ import { serviceIdentifier } from '../util/service-identifier.js';
15
15
  * framework hands around via plain constructor arguments.
16
16
  *
17
17
  * Every token here is a service whose value is **fixed for the container tier
18
- * that binds it** — process-wide shared services, a per-session conflict
19
- * policy, the grammar a diagram type edits. That is the whole membership rule,
20
- * and it is why the registry is short: see below for what deliberately does
21
- * NOT get a token.
18
+ * that binds it**: the shared services and the conflict policy for the
19
+ * process, the tracer for each request. That is the whole membership rule, and
20
+ * it is why the registry is short: see below for what deliberately does NOT
21
+ * get a token.
22
22
  *
23
23
  * Grouped under one object (rather than top-level `Hydranium<Role>` consts)
24
24
  * so the token identity is decoupled from the implementation class name.
25
25
  * Mirrors GLSP's own `TYPES` registry idiom.
26
26
  *
27
- * Bound by the adopter from their services trees — the app-tier ones directly,
28
- * the session-tier language by declaring a grammar on the diagram module.
29
- * Inject with the real service type as the field type.
30
- *
31
- * **Split by tier, because GLSP has no language tier.** GLSP's containers are
32
- * app (per process) -> server (per connection) -> session (per open diagram);
33
- * Langium's are shared (per process) -> language (per grammar, routed by URI).
34
- * Only the outermost pair line up. A per-language service therefore CANNOT be
35
- * bound at the app tier — that container is built before any document exists,
36
- * so it can only ever hold one grammar's services. The tokens below are split
37
- * accordingly:
27
+ * `SharedCoreServices` and `ConflictResolver` are bound by
28
+ * `HydraniumGlspAppModule`, `Tracer` by the launchers. Inject each with the
29
+ * real service type as the field type.
38
30
  *
39
31
  * - **SharedCoreServices** — the framework's Langium-style shared services
40
32
  * tree ({@link ServerSharedServices}); the services-tree root that state /
41
33
  * index classes inject. Bound once at the app tier. Carries
42
34
  * `ServiceRegistry`, which is how everything below reaches a language.
43
- * - **DiagramLanguage** — the {@link ServerLanguageServices} of the grammar a
44
- * diagram type edits, bound at the SESSION tier by
45
- * `AbstractHydraniumGlspDiagramModule` from its declared `declareLanguage()`.
46
- * Static (a diagram type has one grammar), so it is safe for the eagerly
47
- * constructed handlers GLSP builds at `InitializeClientSession`. Read it
48
- * through `AbstractHydraniumGlspState.diagramLanguage`.
49
35
  * - **ConflictResolver** — the policy the GLSP state consults when a write
50
36
  * (forward-write, undo, redo, save) races a foreign edit.
51
37
  * `HydraniumGlspAppModule` binds it to `options.conflictResolver`
@@ -58,8 +44,14 @@ import { serviceIdentifier } from '../util/service-identifier.js';
58
44
  * component — no manual `for(...)`. The non-injectable recording command,
59
45
  * which can't inject, borrows the state's `tracer` getter instead.
60
46
  *
61
- * **No per-language SERVICE has a token — only the language does.** There is
62
- * no `ElementKeyProvider`, `NameProvider`, `ScopeProvider` or
47
+ * **No language and no per-language service has a token, because GLSP has no
48
+ * language tier.** GLSP's containers are app (per process) -> server (per
49
+ * connection) -> session (per open diagram); Langium's are shared (per
50
+ * process) -> language (per grammar, routed by URI). Only the outermost pair
51
+ * line up. The app container is built before any document exists, and a
52
+ * session's handlers before its document is loaded, so neither knows the
53
+ * diagram's language: the one its loaded document routes to. Nor is there an
54
+ * `ElementKeyProvider`, `NameProvider`, `ScopeProvider` or
63
55
  * `CandidateProvider` symbol, because every one of them is keyed by a document
64
56
  * that the container cannot know: the target node's, for naming and keying;
65
57
  * the one a reference is WRITTEN in, for scope and candidates. A GLSP
@@ -75,14 +67,9 @@ import { serviceIdentifier } from '../util/service-identifier.js';
75
67
  * reference written on the canvas, `modelState.languageServicesFor(node)` for
76
68
  * anything reached through a reference. `ServiceRegistry.getServicesFor(target)`
77
69
  * serves the same purpose where no model state is at hand.
78
- *
79
- * The app-tier tokens are bound by `HydraniumGlspAppModule`, the
80
- * session-tier one by `AbstractHydraniumGlspDiagramModule`. A multi-grammar
81
- * adopter declares a language per diagram module and needs nothing else.
82
70
  */
83
71
  export const HydraniumTypes = {
84
72
  SharedCoreServices: serviceIdentifier('HydraniumSharedCoreServices'),
85
- DiagramLanguage: serviceIdentifier('HydraniumDiagramLanguage'),
86
73
  ConflictResolver: serviceIdentifier('HydraniumConflictResolver'),
87
74
  Tracer: serviceIdentifier('HydraniumTracer')
88
75
  };
@@ -1 +1 @@
1
- {"version":3,"file":"hydranium-shared-core-services.js","sourceRoot":"","sources":["../../src/state/hydranium-shared-core-services.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAIlF,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwEG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC3B,kBAAkB,EAAE,iBAAiB,CAAuB,6BAA6B,CAAC;IAC1F,eAAe,EAAE,iBAAiB,CAAyB,0BAA0B,CAAC;IACtF,gBAAgB,EAAE,iBAAiB,CAAmB,2BAA2B,CAAC;IAClF,MAAM,EAAE,iBAAiB,CAAS,iBAAiB,CAAC;CAC7C,CAAC"}
1
+ {"version":3,"file":"hydranium-shared-core-services.js","sourceRoot":"","sources":["../../src/state/hydranium-shared-core-services.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAIlF,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAElE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4DG;AACH,MAAM,CAAC,MAAM,cAAc,GAAG;IAC3B,kBAAkB,EAAE,iBAAiB,CAAuB,6BAA6B,CAAC;IAC1F,gBAAgB,EAAE,iBAAiB,CAAmB,2BAA2B,CAAC;IAClF,MAAM,EAAE,iBAAiB,CAAS,iBAAiB,CAAC;CAC7C,CAAC"}
@@ -14,4 +14,5 @@ export * from './reconciling-multi-document-glsp-state.js';
14
14
  export * from './full-text-hydranium-glsp-state.js';
15
15
  export * from './hydranium-shared-core-services.js';
16
16
  export * from './model-ready-timeout-error.js';
17
+ export * from './diagram-status.js';
17
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/state/index.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oCAAoC,CAAC;AACnD,cAAc,mCAAmC,CAAC;AAClD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,gCAAgC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/state/index.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oCAAoC,CAAC;AACnD,cAAc,mCAAmC,CAAC;AAClD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qBAAqB,CAAC"}
@@ -14,4 +14,5 @@ export * from './reconciling-multi-document-glsp-state.js';
14
14
  export * from './full-text-hydranium-glsp-state.js';
15
15
  export * from './hydranium-shared-core-services.js';
16
16
  export * from './model-ready-timeout-error.js';
17
+ export * from './diagram-status.js';
17
18
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/state/index.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oCAAoC,CAAC;AACnD,cAAc,mCAAmC,CAAC;AAClD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,gCAAgC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/state/index.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oCAAoC,CAAC;AACnD,cAAc,mCAAmC,CAAC;AAClD,cAAc,gDAAgD,CAAC;AAC/D,cAAc,4CAA4C,CAAC;AAC3D,cAAc,qCAAqC,CAAC;AACpD,cAAc,qCAAqC,CAAC;AACpD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,qBAAqB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"model-ready-timeout-error.d.ts","sourceRoot":"","sources":["../../src/state/model-ready-timeout-error.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF;;;;;;;;;;;GAWG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;aAE3B,GAAG,EAAE,MAAM;aACX,WAAW,EAAE,MAAM;aACnB,SAAS,EAAE,MAAM;aACjB,UAAU,EAAE,MAAM;gBAHlB,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,UAAU,GAAE,MAAW;CAM5C"}
1
+ {"version":3,"file":"model-ready-timeout-error.d.ts","sourceRoot":"","sources":["../../src/state/model-ready-timeout-error.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF;;;;;;;;;;;GAWG;AACH,qBAAa,sBAAuB,SAAQ,KAAK;aAE3B,GAAG,EAAE,MAAM;aACX,WAAW,EAAE,MAAM;aACnB,SAAS,EAAE,MAAM;aACjB,UAAU,EAAE,MAAM;IAJrC,YACmB,GAAG,EAAE,MAAM,EACX,WAAW,EAAE,MAAM,EACnB,SAAS,EAAE,MAAM,EACjB,UAAU,GAAE,MAAW,EAKzC;CACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"model-ready-timeout-error.js","sourceRoot":"","sources":["../../src/state/model-ready-timeout-error.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IAE3B;IACA;IACA;IACA;IAJnB,YACmB,GAAW,EACX,WAAmB,EACnB,SAAiB,EACjB,aAAqB,EAAE;QAEvC,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClD,KAAK,CAAC,mBAAmB,SAAS,yBAAyB,WAAW,QAAQ,GAAG,IAAI,MAAM,EAAE,CAAC,CAAC;QAN/E,QAAG,GAAH,GAAG,CAAQ;QACX,gBAAW,GAAX,WAAW,CAAQ;QACnB,cAAS,GAAT,SAAS,CAAQ;QACjB,eAAU,GAAV,UAAU,CAAa;QAIvC,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACxC,CAAC;CACH"}
1
+ {"version":3,"file":"model-ready-timeout-error.js","sourceRoot":"","sources":["../../src/state/model-ready-timeout-error.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,sBAAuB,SAAQ,KAAK;IAE3B,GAAG;IACH,WAAW;IACX,SAAS;IACT,UAAU;IAJ7B,YACmB,GAAW,EACX,WAAmB,EACnB,SAAiB,EACjB,UAAU,GAAW,EAAE;QAEvC,MAAM,MAAM,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAClD,KAAK,CAAC,mBAAmB,SAAS,yBAAyB,WAAW,QAAQ,GAAG,IAAI,MAAM,EAAE,CAAC,CAAC;mBAN/E,GAAG;2BACH,WAAW;yBACX,SAAS;0BACT,UAAU;QAI1B,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACxC,CAAC;CACH"}
@@ -6,38 +6,24 @@
6
6
  *
7
7
  * SPDX-License-Identifier: MIT
8
8
  ********************************************************************************/
9
- import { type ConflictResolver, type Logger } from '@hydranium/protocol';
10
- /**
11
- * The I/O and policy a {@link reconcileSourceModelWrite} call needs. Deliberately
12
- * a plain record rather than a base class: the states that use it differ in what
13
- * "persist" and "project" mean but not at all in how a conflict is handled, and
14
- * pulling the orchestration out is what keeps that second half from being
15
- * written once per state.
16
- */
17
- export interface SourceModelWriteHooks<TModel> {
18
- /**
19
- * Write `model` and capture the resulting state. Called with a `baseVersion`
20
- * on the first attempt (opting into the `ConflictError` gate) and without one
21
- * on the merged / forced retries, where the point is to land the write.
22
- */
23
- persist(model: TModel, baseVersion?: number): Promise<void>;
24
- /** Current server-side projection, or `undefined` when unavailable. */
25
- refetch(): Promise<TModel | undefined>;
26
- /** Last in-sync projection the user's intent is measured against. */
27
- readonly baseline: TModel | undefined;
28
- readonly conflictResolver: ConflictResolver;
9
+ import { type BaseVersion, type Logger, type ReconcileWriteHooks } from '@hydranium/protocol';
10
+ /** The I/O and policy a {@link reconcileSourceModelWrite} call needs. */
11
+ export interface SourceModelWriteHooks<TModel> extends Omit<ReconcileWriteHooks<TModel>, 'onUnavailable'> {
29
12
  readonly logger: Logger;
30
13
  /** Invoked when the edit is dropped, so the caller can resync its own state. */
31
14
  onConflictDropped(): void;
15
+ /** Invoked when the document already held the edit, so the caller can take its built root. */
16
+ onAlreadyApplied(): void;
32
17
  }
33
18
  /**
34
- * Persist `model`, and on a `ConflictError` reconcile the user's intent against
35
- * the current server state via the injected policy and act on the outcome.
19
+ * {@link reconcileWrite} for a diagram edit: logs the outcome it ends, and
20
+ * resyncs through `onConflictDropped` when the edit is dropped, through
21
+ * `onAlreadyApplied` when the document already held it.
36
22
  *
37
- * One declarative policy shared by forward-write, undo and redo: force =
38
- * last-writer-wins, reconciling = field-level merge. A non-conflict error is
39
- * re-thrown untouched — this function only knows how to handle the specific
40
- * failure of "the based-on version was superseded".
23
+ * A conflict whose refetch is unavailable, the current text not readable to
24
+ * reconcile against, throws the `ConflictError` the write raised: forcing the
25
+ * edit would overwrite text the diagram never saw. An operation then rolls
26
+ * back and an undo or redo fails, as for any write that throws.
41
27
  */
42
- export declare function reconcileSourceModelWrite<TModel extends object>(model: TModel, version: number | undefined, hooks: SourceModelWriteHooks<TModel>): Promise<void>;
28
+ export declare function reconcileSourceModelWrite<TModel extends object>(model: TModel, baseVersion: BaseVersion, hooks: SourceModelWriteHooks<TModel>): Promise<void>;
43
29
  //# sourceMappingURL=reconcile-source-model-write.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"reconcile-source-model-write.d.ts","sourceRoot":"","sources":["../../src/state/reconcile-source-model-write.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAAE,KAAK,gBAAgB,EAAE,KAAK,MAAM,EAAmB,MAAM,qBAAqB,CAAC;AAE1F;;;;;;GAMG;AACH,MAAM,WAAW,qBAAqB,CAAC,MAAM;IAC1C;;;;OAIG;IACH,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5D,uEAAuE;IACvE,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IACvC,qEAAqE;IACrE,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IACtC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAC5C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,gFAAgF;IAChF,iBAAiB,IAAI,IAAI,CAAC;CAC5B;AAED;;;;;;;;GAQG;AACH,wBAAsB,yBAAyB,CAAC,MAAM,SAAS,MAAM,EAClE,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GAAG,SAAS,EAC3B,KAAK,EAAE,qBAAqB,CAAC,MAAM,CAAC,GACpC,OAAO,CAAC,IAAI,CAAC,CA4Bf"}
1
+ {"version":3,"file":"reconcile-source-model-write.d.ts","sourceRoot":"","sources":["../../src/state/reconcile-source-model-write.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,MAAM,EAAE,KAAK,mBAAmB,EAAkB,MAAM,qBAAqB,CAAC;AAE9G,yEAAyE;AACzE,MAAM,WAAW,qBAAqB,CAAC,MAAM,CAAE,SAAQ,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,eAAe,CAAC;IACtG,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,gFAAgF;IAChF,iBAAiB,IAAI,IAAI,CAAC;IAC1B,8FAA8F;IAC9F,gBAAgB,IAAI,IAAI,CAAC;CAC3B;AAED;;;;;;;;;GASG;AACH,wBAAsB,yBAAyB,CAAC,MAAM,SAAS,MAAM,EAClE,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,WAAW,EACxB,KAAK,EAAE,qBAAqB,CAAC,MAAM,CAAC,GACpC,OAAO,CAAC,IAAI,CAAC,CAwCf"}
@@ -6,42 +6,54 @@
6
6
  *
7
7
  * SPDX-License-Identifier: MIT
8
8
  ********************************************************************************/
9
- import { isConflictError } from '@hydranium/protocol';
9
+ import { reconcileWrite } from '@hydranium/protocol';
10
10
  /**
11
- * Persist `model`, and on a `ConflictError` reconcile the user's intent against
12
- * the current server state via the injected policy and act on the outcome.
11
+ * {@link reconcileWrite} for a diagram edit: logs the outcome it ends, and
12
+ * resyncs through `onConflictDropped` when the edit is dropped, through
13
+ * `onAlreadyApplied` when the document already held it.
13
14
  *
14
- * One declarative policy shared by forward-write, undo and redo: force =
15
- * last-writer-wins, reconciling = field-level merge. A non-conflict error is
16
- * re-thrown untouched — this function only knows how to handle the specific
17
- * failure of "the based-on version was superseded".
15
+ * A conflict whose refetch is unavailable, the current text not readable to
16
+ * reconcile against, throws the `ConflictError` the write raised: forcing the
17
+ * edit would overwrite text the diagram never saw. An operation then rolls
18
+ * back and an undo or redo fails, as for any write that throws.
18
19
  */
19
- export async function reconcileSourceModelWrite(model, version, hooks) {
20
- try {
21
- await hooks.persist(model, version);
20
+ export async function reconcileSourceModelWrite(model, baseVersion, hooks) {
21
+ const outcome = await reconcileWrite(model, baseVersion, {
22
+ persist: (candidate, candidateBaseVersion) => hooks.persist(candidate, candidateBaseVersion),
23
+ refetch: () => hooks.refetch(),
24
+ base: hooks.base,
25
+ conflictResolver: hooks.conflictResolver,
26
+ maxWrites: hooks.maxWrites
27
+ });
28
+ if (outcome.status === 'persisted') {
29
+ return;
22
30
  }
23
- catch (err) {
24
- if (!isConflictError(err)) {
25
- throw err;
26
- }
27
- const outcome = await hooks.conflictResolver.resolve(hooks.baseline ?? model, model, () => hooks.refetch());
28
- switch (outcome.status) {
29
- case 'merged':
30
- await hooks.persist(outcome.merged);
31
- return;
32
- case 'no-op':
33
- hooks.logger.debug(`updateSourceModel no-op (v${err.expected} → v${err.actual}); already in sync`);
34
- return;
35
- case 'conflict':
36
- hooks.logger.warn(`updateSourceModel conflict (v${err.expected} → v${err.actual}); dropping the diagram edit — ` +
37
- 'a foreign writer changed the same field');
38
- hooks.onConflictDropped();
39
- return;
40
- case 'unavailable':
41
- hooks.logger.warn(`updateSourceModel refetch unavailable (v${err.expected} → v${err.actual}); forcing without version`);
42
- await hooks.persist(model);
43
- return;
44
- }
31
+ const { conflict, writes } = outcome;
32
+ const versions = `model v${conflict.baseVersion} / text v${conflict.actualVersion}`;
33
+ if (outcome.status === 'unavailable') {
34
+ // The conflict carries both versions to whoever ends the failure, which logs it; why it was not reconciled is diagnosis.
35
+ hooks.logger.debug(`updateSourceModel refetch unavailable (${versions}); the diagram edit fails rather than overwrite unread text`);
36
+ throw conflict;
37
+ }
38
+ switch (outcome.status) {
39
+ case 'merged':
40
+ hooks.logger.debug(`updateSourceModel merged (${versions}); landed on write ${writes}`);
41
+ return;
42
+ case 'already-applied':
43
+ hooks.logger.debug(`updateSourceModel already applied (${versions}); the document already holds the diagram edit`);
44
+ hooks.onAlreadyApplied();
45
+ return;
46
+ case 'unchanged':
47
+ hooks.logger.debug(`updateSourceModel no-op (${versions}); the diagram is behind, its update catches it up`);
48
+ return;
49
+ case 'conflict':
50
+ hooks.logger.warn(`updateSourceModel conflict (${versions}); dropping the diagram edit — a foreign writer changed the same field`);
51
+ hooks.onConflictDropped();
52
+ return;
53
+ case 'dropped':
54
+ hooks.logger.warn(`updateSourceModel still conflicting after ${writes} ${writes === 1 ? 'write' : 'writes'} (${versions}); dropping the diagram edit`);
55
+ hooks.onConflictDropped();
56
+ return;
45
57
  }
46
58
  }
47
59
  //# sourceMappingURL=reconcile-source-model-write.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"reconcile-source-model-write.js","sourceRoot":"","sources":["../../src/state/reconcile-source-model-write.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAAsC,eAAe,EAAE,MAAM,qBAAqB,CAAC;AA0B1F;;;;;;;;GAQG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC5C,KAAa,EACb,OAA2B,EAC3B,KAAoC;IAEpC,IAAI,CAAC;QACF,MAAM,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACvC,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACZ,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,EAAE,CAAC;YACzB,MAAM,GAAG,CAAC;QACb,CAAC;QACD,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,gBAAgB,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,IAAI,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;QAC5G,QAAQ,OAAO,CAAC,MAAM,EAAE,CAAC;YACtB,KAAK,QAAQ;gBACV,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBACpC,OAAO;YACV,KAAK,OAAO;gBACT,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,GAAG,CAAC,QAAQ,OAAO,GAAG,CAAC,MAAM,oBAAoB,CAAC,CAAC;gBACnG,OAAO;YACV,KAAK,UAAU;gBACZ,KAAK,CAAC,MAAM,CAAC,IAAI,CACd,gCAAgC,GAAG,CAAC,QAAQ,OAAO,GAAG,CAAC,MAAM,iCAAiC;oBAC3F,yCAAyC,CAC9C,CAAC;gBACF,KAAK,CAAC,iBAAiB,EAAE,CAAC;gBAC1B,OAAO;YACV,KAAK,aAAa;gBACf,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,2CAA2C,GAAG,CAAC,QAAQ,OAAO,GAAG,CAAC,MAAM,4BAA4B,CAAC,CAAC;gBACxH,MAAM,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBAC3B,OAAO;QACb,CAAC;IACJ,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"reconcile-source-model-write.js","sourceRoot":"","sources":["../../src/state/reconcile-source-model-write.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EAA2D,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAW9G;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAC5C,KAAa,EACb,WAAwB,EACxB,KAAoC;IAEpC,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,KAAK,EAAE,WAAW,EAAE;QACtD,OAAO,EAAE,CAAC,SAAS,EAAE,oBAAoB,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,EAAE,oBAAoB,CAAC;QAC5F,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE;QAC9B,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;QACxC,SAAS,EAAE,KAAK,CAAC,SAAS;KAC5B,CAAC,CAAC;IACH,IAAI,OAAO,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;QAClC,OAAO;IACV,CAAC;IACD,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IACrC,MAAM,QAAQ,GAAG,UAAU,QAAQ,CAAC,WAAW,YAAY,QAAQ,CAAC,aAAa,EAAE,CAAC;IACpF,IAAI,OAAO,CAAC,MAAM,KAAK,aAAa,EAAE,CAAC;QACpC,yHAAyH;QACzH,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,0CAA0C,QAAQ,6DAA6D,CAAC,CAAC;QACpI,MAAM,QAAQ,CAAC;IAClB,CAAC;IACD,QAAQ,OAAO,CAAC,MAAM,EAAE,CAAC;QACtB,KAAK,QAAQ;YACV,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,6BAA6B,QAAQ,sBAAsB,MAAM,EAAE,CAAC,CAAC;YACxF,OAAO;QACV,KAAK,iBAAiB;YACnB,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,sCAAsC,QAAQ,gDAAgD,CAAC,CAAC;YACnH,KAAK,CAAC,gBAAgB,EAAE,CAAC;YACzB,OAAO;QACV,KAAK,WAAW;YACb,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,4BAA4B,QAAQ,oDAAoD,CAAC,CAAC;YAC7G,OAAO;QACV,KAAK,UAAU;YACZ,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,+BAA+B,QAAQ,wEAAwE,CAAC,CAAC;YACnI,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC1B,OAAO;QACV,KAAK,SAAS;YACX,KAAK,CAAC,MAAM,CAAC,IAAI,CACd,6CAA6C,MAAM,IAAI,MAAM,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,8BAA8B,CACrI,CAAC;YACF,KAAK,CAAC,iBAAiB,EAAE,CAAC;YAC1B,OAAO;IACb,CAAC;AACJ,CAAC"}