@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.
- package/README.md +80 -88
- package/lib/browser/start-glsp-server-in-worker.d.ts +43 -42
- package/lib/browser/start-glsp-server-in-worker.d.ts.map +1 -1
- package/lib/browser/start-glsp-server-in-worker.js +62 -13
- package/lib/browser/start-glsp-server-in-worker.js.map +1 -1
- package/lib/command/diagram-edit-dropped-error.d.ts +31 -0
- package/lib/command/diagram-edit-dropped-error.d.ts.map +1 -0
- package/lib/command/diagram-edit-dropped-error.js +48 -0
- package/lib/command/diagram-edit-dropped-error.js.map +1 -0
- package/lib/command/hydranium-glsp-command-stack.d.ts +33 -0
- package/lib/command/hydranium-glsp-command-stack.d.ts.map +1 -0
- package/lib/command/hydranium-glsp-command-stack.js +63 -0
- package/lib/command/hydranium-glsp-command-stack.js.map +1 -0
- package/lib/command/hydranium-glsp-operation-action-handler.d.ts +64 -0
- package/lib/command/hydranium-glsp-operation-action-handler.d.ts.map +1 -0
- package/lib/command/hydranium-glsp-operation-action-handler.js +142 -0
- package/lib/command/hydranium-glsp-operation-action-handler.js.map +1 -0
- package/lib/command/hydranium-glsp-operation-command.d.ts +250 -0
- package/lib/command/hydranium-glsp-operation-command.d.ts.map +1 -0
- package/lib/command/hydranium-glsp-operation-command.js +491 -0
- package/lib/command/hydranium-glsp-operation-command.js.map +1 -0
- package/lib/command/hydranium-glsp-recording-command.d.ts +26 -87
- package/lib/command/hydranium-glsp-recording-command.d.ts.map +1 -1
- package/lib/command/hydranium-glsp-recording-command.js +40 -117
- package/lib/command/hydranium-glsp-recording-command.js.map +1 -1
- package/lib/command/hydranium-glsp-undo-redo-action-handler.d.ts +23 -0
- package/lib/command/hydranium-glsp-undo-redo-action-handler.d.ts.map +1 -0
- package/lib/command/hydranium-glsp-undo-redo-action-handler.js +41 -0
- package/lib/command/hydranium-glsp-undo-redo-action-handler.js.map +1 -0
- package/lib/command/index.d.ts +5 -0
- package/lib/command/index.d.ts.map +1 -1
- package/lib/command/index.js +5 -0
- package/lib/command/index.js.map +1 -1
- package/lib/computed-bounds/hydranium-glsp-computed-bounds-action-handler.d.ts +1 -1
- package/lib/computed-bounds/hydranium-glsp-computed-bounds-action-handler.d.ts.map +1 -1
- package/lib/computed-bounds/hydranium-glsp-computed-bounds-action-handler.js +2 -2
- package/lib/computed-bounds/hydranium-glsp-computed-bounds-action-handler.js.map +1 -1
- package/lib/dispatcher/server-action-dispatcher.d.ts +25 -24
- package/lib/dispatcher/server-action-dispatcher.d.ts.map +1 -1
- package/lib/dispatcher/server-action-dispatcher.js +38 -26
- package/lib/dispatcher/server-action-dispatcher.js.map +1 -1
- package/lib/index.d.ts +1 -0
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +1 -0
- package/lib/index.js.map +1 -1
- package/lib/launcher/abstract-hydranium-glsp-diagram-module.d.ts +35 -59
- package/lib/launcher/abstract-hydranium-glsp-diagram-module.d.ts.map +1 -1
- package/lib/launcher/abstract-hydranium-glsp-diagram-module.js +60 -71
- package/lib/launcher/abstract-hydranium-glsp-diagram-module.js.map +1 -1
- package/lib/launcher/drop-notifications-to-gone-client.d.ts +23 -0
- package/lib/launcher/drop-notifications-to-gone-client.d.ts.map +1 -0
- package/lib/launcher/drop-notifications-to-gone-client.js +43 -0
- package/lib/launcher/drop-notifications-to-gone-client.js.map +1 -0
- package/lib/launcher/glsp-app-module.d.ts +1 -2
- package/lib/launcher/glsp-app-module.d.ts.map +1 -1
- package/lib/launcher/glsp-app-module.js.map +1 -1
- package/lib/launcher/glsp-connection-logger.d.ts +19 -0
- package/lib/launcher/glsp-connection-logger.d.ts.map +1 -0
- package/lib/launcher/glsp-connection-logger.js +24 -0
- package/lib/launcher/glsp-connection-logger.js.map +1 -0
- package/lib/launcher/glsp-server-overrides.d.ts +10 -8
- package/lib/launcher/glsp-server-overrides.d.ts.map +1 -1
- package/lib/launcher/glsp-server-overrides.js +25 -11
- package/lib/launcher/glsp-server-overrides.js.map +1 -1
- package/lib/launcher/hydranium-glsp-server.d.ts +60 -15
- package/lib/launcher/hydranium-glsp-server.d.ts.map +1 -1
- package/lib/launcher/hydranium-glsp-server.js +145 -22
- package/lib/launcher/hydranium-glsp-server.js.map +1 -1
- package/lib/launcher/index.d.ts +2 -0
- package/lib/launcher/index.d.ts.map +1 -1
- package/lib/launcher/index.js +5 -4
- package/lib/launcher/index.js.map +1 -1
- package/lib/logging/glsp-client-logger.d.ts +10 -6
- package/lib/logging/glsp-client-logger.d.ts.map +1 -1
- package/lib/logging/glsp-client-logger.js +14 -7
- package/lib/logging/glsp-client-logger.js.map +1 -1
- package/lib/messages/index.d.ts +11 -6
- package/lib/messages/index.d.ts.map +1 -1
- package/lib/messages/index.js +11 -6
- package/lib/messages/index.js.map +1 -1
- package/lib/node/start-glsp-server.d.ts +50 -15
- package/lib/node/start-glsp-server.d.ts.map +1 -1
- package/lib/node/start-glsp-server.js +97 -30
- package/lib/node/start-glsp-server.js.map +1 -1
- package/lib/state/abstract-hydranium-glsp-state.d.ts +326 -102
- package/lib/state/abstract-hydranium-glsp-state.d.ts.map +1 -1
- package/lib/state/abstract-hydranium-glsp-state.js +529 -139
- package/lib/state/abstract-hydranium-glsp-state.js.map +1 -1
- package/lib/state/diagram-status.d.ts +38 -0
- package/lib/state/diagram-status.d.ts.map +1 -0
- package/lib/state/diagram-status.js +27 -0
- package/lib/state/diagram-status.js.map +1 -0
- package/lib/state/full-text-hydranium-glsp-state.d.ts +22 -9
- package/lib/state/full-text-hydranium-glsp-state.d.ts.map +1 -1
- package/lib/state/full-text-hydranium-glsp-state.js +45 -18
- package/lib/state/full-text-hydranium-glsp-state.js.map +1 -1
- package/lib/state/hydranium-glsp-index.d.ts +40 -29
- package/lib/state/hydranium-glsp-index.d.ts.map +1 -1
- package/lib/state/hydranium-glsp-index.js +82 -45
- package/lib/state/hydranium-glsp-index.js.map +1 -1
- package/lib/state/hydranium-shared-core-services.d.ts +16 -29
- package/lib/state/hydranium-shared-core-services.d.ts.map +1 -1
- package/lib/state/hydranium-shared-core-services.js +15 -28
- package/lib/state/hydranium-shared-core-services.js.map +1 -1
- package/lib/state/index.d.ts +1 -0
- package/lib/state/index.d.ts.map +1 -1
- package/lib/state/index.js +1 -0
- package/lib/state/index.js.map +1 -1
- package/lib/state/model-ready-timeout-error.d.ts.map +1 -1
- package/lib/state/model-ready-timeout-error.js.map +1 -1
- package/lib/state/reconcile-source-model-write.d.ts +13 -27
- package/lib/state/reconcile-source-model-write.d.ts.map +1 -1
- package/lib/state/reconcile-source-model-write.js +44 -32
- package/lib/state/reconcile-source-model-write.js.map +1 -1
- package/lib/state/reconciling-multi-document-glsp-state.d.ts +125 -69
- package/lib/state/reconciling-multi-document-glsp-state.d.ts.map +1 -1
- package/lib/state/reconciling-multi-document-glsp-state.js +242 -100
- package/lib/state/reconciling-multi-document-glsp-state.js.map +1 -1
- package/lib/state/reconciling-transfer-hydranium-glsp-state.d.ts +36 -28
- package/lib/state/reconciling-transfer-hydranium-glsp-state.d.ts.map +1 -1
- package/lib/state/reconciling-transfer-hydranium-glsp-state.js +59 -42
- package/lib/state/reconciling-transfer-hydranium-glsp-state.js.map +1 -1
- package/lib/status/diagram-status-reporter.d.ts +44 -0
- package/lib/status/diagram-status-reporter.d.ts.map +1 -0
- package/lib/status/diagram-status-reporter.js +88 -0
- package/lib/status/diagram-status-reporter.js.map +1 -0
- package/lib/status/hydranium-glsp-request-model-action-handler.d.ts +27 -0
- package/lib/status/hydranium-glsp-request-model-action-handler.d.ts.map +1 -0
- package/lib/status/hydranium-glsp-request-model-action-handler.js +52 -0
- package/lib/status/hydranium-glsp-request-model-action-handler.js.map +1 -0
- package/lib/status/hydranium-glsp-set-edit-mode-action-handler.d.ts +27 -0
- package/lib/status/hydranium-glsp-set-edit-mode-action-handler.d.ts.map +1 -0
- package/lib/status/hydranium-glsp-set-edit-mode-action-handler.js +53 -0
- package/lib/status/hydranium-glsp-set-edit-mode-action-handler.js.map +1 -0
- package/lib/status/index.d.ts +12 -0
- package/lib/status/index.d.ts.map +1 -0
- package/lib/status/index.js +12 -0
- package/lib/status/index.js.map +1 -0
- package/lib/storage/hydranium-glsp-request-save-model-action-handler.d.ts +30 -0
- package/lib/storage/hydranium-glsp-request-save-model-action-handler.d.ts.map +1 -0
- package/lib/storage/hydranium-glsp-request-save-model-action-handler.js +47 -0
- package/lib/storage/hydranium-glsp-request-save-model-action-handler.js.map +1 -0
- package/lib/storage/hydranium-glsp-storage.d.ts +324 -143
- package/lib/storage/hydranium-glsp-storage.d.ts.map +1 -1
- package/lib/storage/hydranium-glsp-storage.js +569 -213
- package/lib/storage/hydranium-glsp-storage.js.map +1 -1
- package/lib/storage/index.d.ts +2 -1
- package/lib/storage/index.d.ts.map +1 -1
- package/lib/storage/index.js +2 -1
- package/lib/storage/index.js.map +1 -1
- package/lib/storage/save-delivery-policy.d.ts +51 -0
- package/lib/storage/save-delivery-policy.d.ts.map +1 -0
- package/lib/storage/{save-conflict-policy.js → save-delivery-policy.js} +7 -8
- package/lib/storage/save-delivery-policy.js.map +1 -0
- package/lib/submission/hydranium-glsp-submission-handler.d.ts +44 -4
- package/lib/submission/hydranium-glsp-submission-handler.d.ts.map +1 -1
- package/lib/submission/hydranium-glsp-submission-handler.js +82 -6
- package/lib/submission/hydranium-glsp-submission-handler.js.map +1 -1
- package/lib/testing/glsp-harness.d.ts +34 -7
- package/lib/testing/glsp-harness.d.ts.map +1 -1
- package/lib/testing/glsp-harness.js +47 -19
- package/lib/testing/glsp-harness.js.map +1 -1
- package/lib/validation/diagnostic-markers.d.ts +3 -3
- package/lib/validation/diagnostic-markers.d.ts.map +1 -1
- package/lib/validation/diagnostic-markers.js +1 -1
- package/lib/validation/diagnostic-markers.js.map +1 -1
- package/lib/validation/hydranium-glsp-model-validator.d.ts +1 -2
- package/lib/validation/hydranium-glsp-model-validator.d.ts.map +1 -1
- package/lib/validation/hydranium-glsp-model-validator.js +1 -1
- package/lib/validation/hydranium-glsp-model-validator.js.map +1 -1
- package/package.json +31 -52
- package/src/browser/start-glsp-server-in-worker.ts +79 -51
- package/src/command/diagram-edit-dropped-error.ts +51 -0
- package/src/command/hydranium-glsp-command-stack.ts +47 -0
- package/src/command/hydranium-glsp-operation-action-handler.ts +141 -0
- package/src/command/hydranium-glsp-operation-command.ts +602 -0
- package/src/command/hydranium-glsp-recording-command.ts +40 -121
- package/src/command/hydranium-glsp-undo-redo-action-handler.ts +29 -0
- package/src/command/index.ts +10 -0
- package/src/computed-bounds/hydranium-glsp-computed-bounds-action-handler.ts +2 -2
- package/src/dispatcher/server-action-dispatcher.ts +39 -31
- package/src/index.ts +1 -0
- package/src/launcher/abstract-hydranium-glsp-diagram-module.ts +79 -91
- package/src/launcher/drop-notifications-to-gone-client.ts +47 -0
- package/src/launcher/glsp-app-module.ts +1 -2
- package/src/launcher/glsp-connection-logger.ts +27 -0
- package/src/launcher/glsp-server-overrides.ts +27 -11
- package/src/launcher/hydranium-glsp-server.ts +153 -23
- package/src/launcher/index.ts +5 -4
- package/src/logging/glsp-client-logger.ts +16 -9
- package/src/messages/index.ts +16 -6
- package/src/node/start-glsp-server.ts +133 -40
- package/src/state/abstract-hydranium-glsp-state.ts +609 -154
- package/src/state/diagram-status.ts +41 -0
- package/src/state/full-text-hydranium-glsp-state.ts +46 -18
- package/src/state/hydranium-glsp-index.ts +85 -41
- package/src/state/hydranium-shared-core-services.ts +16 -29
- package/src/state/index.ts +1 -0
- package/src/state/reconcile-source-model-write.ts +51 -53
- package/src/state/reconciling-multi-document-glsp-state.ts +276 -102
- package/src/state/reconciling-transfer-hydranium-glsp-state.ts +67 -45
- package/src/status/diagram-status-reporter.ts +106 -0
- package/src/status/hydranium-glsp-request-model-action-handler.ts +43 -0
- package/src/status/hydranium-glsp-set-edit-mode-action-handler.ts +38 -0
- package/src/status/index.ts +12 -0
- package/src/storage/hydranium-glsp-request-save-model-action-handler.ts +40 -0
- package/src/storage/hydranium-glsp-storage.ts +647 -223
- package/src/storage/index.ts +2 -1
- package/src/storage/save-delivery-policy.ts +49 -0
- package/src/submission/hydranium-glsp-submission-handler.ts +91 -5
- package/src/testing/glsp-harness.ts +67 -25
- package/src/validation/diagnostic-markers.ts +3 -3
- package/src/validation/hydranium-glsp-model-validator.ts +4 -5
- package/lib/storage/save-conflict-policy.d.ts +0 -56
- package/lib/storage/save-conflict-policy.d.ts.map +0 -1
- package/lib/storage/save-conflict-policy.js.map +0 -1
- 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":"AAAA;;;;;;;kFAOkF;;;;;;;;;;AAElF,OAAO,EAAsB,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACvE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,
|
|
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 {
|
|
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
|
|
20
|
-
*
|
|
21
|
-
*
|
|
22
|
-
*
|
|
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
|
-
*
|
|
29
|
-
*
|
|
30
|
-
*
|
|
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
|
|
63
|
-
*
|
|
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,
|
|
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
|
|
19
|
-
*
|
|
20
|
-
*
|
|
21
|
-
*
|
|
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
|
-
*
|
|
28
|
-
*
|
|
29
|
-
*
|
|
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
|
|
62
|
-
*
|
|
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
|
|
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"}
|
package/lib/state/index.d.ts
CHANGED
|
@@ -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
|
package/lib/state/index.d.ts.map
CHANGED
|
@@ -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"}
|
package/lib/state/index.js
CHANGED
|
@@ -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
|
package/lib/state/index.js.map
CHANGED
|
@@ -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;
|
|
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;
|
|
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
|
|
10
|
-
/**
|
|
11
|
-
|
|
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
|
-
*
|
|
35
|
-
*
|
|
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
|
-
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
*
|
|
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,
|
|
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,
|
|
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 {
|
|
9
|
+
import { reconcileWrite } from '@hydranium/protocol';
|
|
10
10
|
/**
|
|
11
|
-
*
|
|
12
|
-
*
|
|
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
|
-
*
|
|
15
|
-
*
|
|
16
|
-
*
|
|
17
|
-
*
|
|
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,
|
|
20
|
-
|
|
21
|
-
|
|
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
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
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,
|
|
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"}
|