@hydranium/glsp-server 1.0.0-next.28 → 1.0.0-next.280
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 +77 -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 +249 -0
- package/lib/command/hydranium-glsp-operation-command.d.ts.map +1 -0
- package/lib/command/hydranium-glsp-operation-command.js +486 -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 +30 -8
- package/lib/node/start-glsp-server.d.ts.map +1 -1
- package/lib/node/start-glsp-server.js +49 -10
- package/lib/node/start-glsp-server.js.map +1 -1
- package/lib/state/abstract-hydranium-glsp-state.d.ts +312 -102
- package/lib/state/abstract-hydranium-glsp-state.d.ts.map +1 -1
- package/lib/state/abstract-hydranium-glsp-state.js +505 -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 +15 -8
- package/lib/state/full-text-hydranium-glsp-state.d.ts.map +1 -1
- package/lib/state/full-text-hydranium-glsp-state.js +26 -16
- 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 +10 -27
- package/lib/state/reconcile-source-model-write.d.ts.map +1 -1
- package/lib/state/reconcile-source-model-write.js +39 -32
- package/lib/state/reconcile-source-model-write.js.map +1 -1
- package/lib/state/reconciling-multi-document-glsp-state.d.ts +123 -69
- package/lib/state/reconciling-multi-document-glsp-state.d.ts.map +1 -1
- package/lib/state/reconciling-multi-document-glsp-state.js +239 -100
- package/lib/state/reconciling-multi-document-glsp-state.js.map +1 -1
- package/lib/state/reconciling-transfer-hydranium-glsp-state.d.ts +35 -27
- package/lib/state/reconciling-transfer-hydranium-glsp-state.d.ts.map +1 -1
- package/lib/state/reconciling-transfer-hydranium-glsp-state.js +57 -41
- 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 +322 -143
- package/lib/storage/hydranium-glsp-storage.d.ts.map +1 -1
- package/lib/storage/hydranium-glsp-storage.js +563 -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 +46 -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 +29 -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 +598 -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 +60 -14
- package/src/state/abstract-hydranium-glsp-state.ts +584 -154
- package/src/state/diagram-status.ts +41 -0
- package/src/state/full-text-hydranium-glsp-state.ts +27 -17
- 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 +44 -53
- package/src/state/reconciling-multi-document-glsp-state.ts +273 -102
- package/src/state/reconciling-transfer-hydranium-glsp-state.ts +65 -44
- 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 +639 -223
- package/src/storage/index.ts +2 -1
- package/src/storage/save-delivery-policy.ts +44 -0
- package/src/submission/hydranium-glsp-submission-handler.ts +91 -5
- package/src/testing/glsp-harness.ts +62 -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
|
@@ -6,12 +6,32 @@
|
|
|
6
6
|
*
|
|
7
7
|
* SPDX-License-Identifier: MIT
|
|
8
8
|
********************************************************************************/
|
|
9
|
-
import { type Logger as GlspLogger, type ServerModule } from '@eclipse-glsp/server/node.js';
|
|
10
|
-
import {
|
|
11
|
-
import type
|
|
9
|
+
import { type Logger as GlspLogger, type ServerModule, SocketServerLauncher } from '@eclipse-glsp/server/node.js';
|
|
10
|
+
import { ContainerModule } from 'inversify';
|
|
11
|
+
import { type Logger } from '@hydranium/protocol';
|
|
12
12
|
import type * as net from 'node:net';
|
|
13
13
|
import type { IntegratedServer } from '@hydranium/core';
|
|
14
14
|
import type { LspConnectionLike } from '@hydranium/core/node';
|
|
15
|
+
/**
|
|
16
|
+
* The default socket launcher of {@link startGlspServer}: GLSP's own,
|
|
17
|
+
* with each connection built from this package's copy of `vscode-jsonrpc`, so a
|
|
18
|
+
* framework error thrown in a handler keeps its code. The connection sends
|
|
19
|
+
* GLSP's typed messages by method name, since GLSP builds them from its copy.
|
|
20
|
+
*/
|
|
21
|
+
export declare class HydraniumGlspSocketServerLauncher extends SocketServerLauncher {
|
|
22
|
+
protected createConnection(socket: net.Socket): ReturnType<SocketServerLauncher['createConnection']>;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Binds GLSP's own `SocketServerLauncher` token to
|
|
26
|
+
* {@link HydraniumGlspSocketServerLauncher}. {@link startGlspServer} loads it
|
|
27
|
+
* before the adopter's `appModules`, so an adopter replaces the launcher with
|
|
28
|
+
* `rebind`; a second `bind` makes the resolve ambiguous and the start throws.
|
|
29
|
+
* A replacement extends {@link HydraniumGlspSocketServerLauncher}: GLSP's own
|
|
30
|
+
* launcher builds its connection from GLSP's copy, so framework errors lose
|
|
31
|
+
* their code, and GLSP's typed messages throw where its packages nest
|
|
32
|
+
* separate copies.
|
|
33
|
+
*/
|
|
34
|
+
export declare function createGlspSocketLauncherModule(): ContainerModule;
|
|
15
35
|
/**
|
|
16
36
|
* Options for {@link startGlspServer}.
|
|
17
37
|
*
|
|
@@ -53,10 +73,11 @@ export interface GlspServerOptions {
|
|
|
53
73
|
/**
|
|
54
74
|
* Additional Inversify modules to load on the app container AFTER GLSP's
|
|
55
75
|
* own app module (via `createAppModule`, which binds `InjectionContainer`
|
|
56
|
-
* plus the GLSP-version-specific app bindings)
|
|
76
|
+
* plus the GLSP-version-specific app bindings), the framework overrides
|
|
57
77
|
* that route GLSP's logger and logger factory through the adopter logger
|
|
58
|
-
* and add the shared Tracer
|
|
59
|
-
* (e.g. their own shared-services
|
|
78
|
+
* and add the shared Tracer, and {@link createGlspSocketLauncherModule}.
|
|
79
|
+
* Adopters wire language-services bindings (e.g. their own shared-services
|
|
80
|
+
* symbol) here, and replace the launcher with `rebind`.
|
|
60
81
|
*/
|
|
61
82
|
readonly appModules?: ReadonlyArray<ContainerModule>;
|
|
62
83
|
/**
|
|
@@ -106,11 +127,12 @@ export interface StartedGlspServer extends IntegratedServer {
|
|
|
106
127
|
/**
|
|
107
128
|
* Start a GLSP socket head. Builds the GLSP app container with framework-
|
|
108
129
|
* default `Logger` / `LoggerFactory` bindings, layers adopter modules,
|
|
109
|
-
* resolves {@link SocketServerLauncher},
|
|
130
|
+
* resolves the launcher bound to {@link SocketServerLauncher}, by default
|
|
131
|
+
* {@link HydraniumGlspSocketServerLauncher}, configures the adopter
|
|
110
132
|
* {@link ServerModule}, and starts listening.
|
|
111
133
|
*
|
|
112
134
|
* **GLSP launcher coupling.** GLSP's {@link SocketServerLauncher} owns the
|
|
113
|
-
* `net.Server` and
|
|
135
|
+
* `net.Server` and each connection's server instance;
|
|
114
136
|
* the framework wrapper composes ABOVE that launcher rather than replacing
|
|
115
137
|
* it. The framework's own `startSocketServer`
|
|
116
138
|
* helper is NOT used here — it's designed for stdio/raw-JSON-RPC heads
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start-glsp-server.d.ts","sourceRoot":"","sources":["../../src/node/start-glsp-server.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EACJ,KAAK,MAAM,IAAI,UAAU,EACzB,KAAK,YAAY,
|
|
1
|
+
{"version":3,"file":"start-glsp-server.d.ts","sourceRoot":"","sources":["../../src/node/start-glsp-server.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF;AAElF,OAAO,EACJ,KAAK,MAAM,IAAI,UAAU,EACzB,KAAK,YAAY,EAEjB,oBAAoB,EAGtB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAa,eAAe,EAAc,MAAM,WAAW,CAAC;AACnE,OAAO,EAAsD,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AACtG,OAAO,KAAK,KAAK,GAAG,MAAM,UAAU,CAAC;AAErC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAKxD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAE9D;;;;;GAKG;AACH,qBACa,iCAAkC,SAAQ,oBAAoB;IACxE,UAAmB,gBAAgB,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,GAAG,UAAU,CAAC,oBAAoB,CAAC,kBAAkB,CAAC,CAAC,CAW5G;CACH;AAED;;;;;;;;;GASG;AACH,wBAAgB,8BAA8B,IAAI,eAAe,CAIhE;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAC/B;;;;OAIG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;OAKG;IACH,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,YAAY,EAAE,CAAC,MAAM,CAAC,EAAE,MAAM,KAAK,UAAU,CAAC;IACvD;;;OAGG;IACH,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC;IACpC;;;;;;;;OAQG;IACH,QAAQ,CAAC,UAAU,CAAC,EAAE,aAAa,CAAC,eAAe,CAAC,CAAC;IACrD;;;;;;OAMG;IACH,QAAQ,CAAC,aAAa,CAAC,EAAE,iBAAiB,CAAC;IAC3C;;;OAGG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAC9B;;;;OAIG;IACH,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB;;;;;;;;OAQG;IACH,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,KAAK,IAAI,CAAC;CAC7D;AAED;;;;;;;;;;GAUG;AACH,MAAM,WAAW,iBAAkB,SAAQ,gBAAgB;IACxD,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;CACpC;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,iBAAiB,GAAG,iBAAiB,CAmF7E"}
|
|
@@ -6,19 +6,59 @@
|
|
|
6
6
|
*
|
|
7
7
|
* SPDX-License-Identifier: MIT
|
|
8
8
|
********************************************************************************/
|
|
9
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
10
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
11
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
12
|
+
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;
|
|
13
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
14
|
+
};
|
|
9
15
|
import { SocketServerLauncher, createAppModule, defaultSocketLaunchOptions } from '@eclipse-glsp/server/node.js';
|
|
10
|
-
import { Container } from 'inversify';
|
|
11
|
-
import { Deferred } from '@hydranium/
|
|
16
|
+
import { Container, ContainerModule, injectable } from 'inversify';
|
|
17
|
+
import { Deferred, describeErrorWithStack, sendByMethodName } from '@hydranium/protocol';
|
|
18
|
+
import { createMessageConnection, SocketMessageReader, SocketMessageWriter } from 'vscode-jsonrpc/node';
|
|
19
|
+
import { dropNotificationsToGoneClient } from '../launcher/drop-notifications-to-gone-client.js';
|
|
20
|
+
import { createGlspConnectionLogger } from '../launcher/glsp-connection-logger.js';
|
|
12
21
|
import { createGlspFrameworkOverrides } from '../launcher/glsp-framework-overrides.js';
|
|
13
22
|
import { createGlspServerOverrides } from '../launcher/glsp-server-overrides.js';
|
|
23
|
+
/**
|
|
24
|
+
* The default socket launcher of {@link startGlspServer}: GLSP's own,
|
|
25
|
+
* with each connection built from this package's copy of `vscode-jsonrpc`, so a
|
|
26
|
+
* framework error thrown in a handler keeps its code. The connection sends
|
|
27
|
+
* GLSP's typed messages by method name, since GLSP builds them from its copy.
|
|
28
|
+
*/
|
|
29
|
+
let HydraniumGlspSocketServerLauncher = class HydraniumGlspSocketServerLauncher extends SocketServerLauncher {
|
|
30
|
+
createConnection(socket) {
|
|
31
|
+
return dropNotificationsToGoneClient(sendByMethodName(createMessageConnection(new SocketMessageReader(socket), new SocketMessageWriter(socket), createGlspConnectionLogger(this.logger))), this.logger);
|
|
32
|
+
}
|
|
33
|
+
};
|
|
34
|
+
HydraniumGlspSocketServerLauncher = __decorate([
|
|
35
|
+
injectable()
|
|
36
|
+
], HydraniumGlspSocketServerLauncher);
|
|
37
|
+
export { HydraniumGlspSocketServerLauncher };
|
|
38
|
+
/**
|
|
39
|
+
* Binds GLSP's own `SocketServerLauncher` token to
|
|
40
|
+
* {@link HydraniumGlspSocketServerLauncher}. {@link startGlspServer} loads it
|
|
41
|
+
* before the adopter's `appModules`, so an adopter replaces the launcher with
|
|
42
|
+
* `rebind`; a second `bind` makes the resolve ambiguous and the start throws.
|
|
43
|
+
* A replacement extends {@link HydraniumGlspSocketServerLauncher}: GLSP's own
|
|
44
|
+
* launcher builds its connection from GLSP's copy, so framework errors lose
|
|
45
|
+
* their code, and GLSP's typed messages throw where its packages nest
|
|
46
|
+
* separate copies.
|
|
47
|
+
*/
|
|
48
|
+
export function createGlspSocketLauncherModule() {
|
|
49
|
+
return new ContainerModule(bind => {
|
|
50
|
+
bind(SocketServerLauncher).to(HydraniumGlspSocketServerLauncher);
|
|
51
|
+
});
|
|
52
|
+
}
|
|
14
53
|
/**
|
|
15
54
|
* Start a GLSP socket head. Builds the GLSP app container with framework-
|
|
16
55
|
* default `Logger` / `LoggerFactory` bindings, layers adopter modules,
|
|
17
|
-
* resolves {@link SocketServerLauncher},
|
|
56
|
+
* resolves the launcher bound to {@link SocketServerLauncher}, by default
|
|
57
|
+
* {@link HydraniumGlspSocketServerLauncher}, configures the adopter
|
|
18
58
|
* {@link ServerModule}, and starts listening.
|
|
19
59
|
*
|
|
20
60
|
* **GLSP launcher coupling.** GLSP's {@link SocketServerLauncher} owns the
|
|
21
|
-
* `net.Server` and
|
|
61
|
+
* `net.Server` and each connection's server instance;
|
|
22
62
|
* the framework wrapper composes ABOVE that launcher rather than replacing
|
|
23
63
|
* it. The framework's own `startSocketServer`
|
|
24
64
|
* helper is NOT used here — it's designed for stdio/raw-JSON-RPC heads
|
|
@@ -42,12 +82,11 @@ export function startGlspServer(options) {
|
|
|
42
82
|
// adopter's logger, so GLSP server logs flow through options.createLogger.
|
|
43
83
|
const glspAppModule = createAppModule({ ...launchOptions, consoleLog: false, fileLog: false });
|
|
44
84
|
const appContainer = new Container();
|
|
45
|
-
appContainer.load(glspAppModule, createGlspFrameworkOverrides(options.createLogger), ...(options.appModules ?? []));
|
|
46
|
-
const launcher = appContainer.
|
|
85
|
+
appContainer.load(glspAppModule, createGlspFrameworkOverrides(options.createLogger), createGlspSocketLauncherModule(), ...(options.appModules ?? []));
|
|
86
|
+
const launcher = appContainer.get(SocketServerLauncher);
|
|
47
87
|
// Passed as an additional module rather than folded into the app container:
|
|
48
88
|
// the launcher loads these into the per-connection SERVER container, which is
|
|
49
|
-
// the
|
|
50
|
-
// can be rebound.
|
|
89
|
+
// the tier where each connection gets a server of its own.
|
|
51
90
|
launcher.configure(options.serverModule, createGlspServerOverrides());
|
|
52
91
|
const started = new Deferred();
|
|
53
92
|
const portHandle = { port: undefined };
|
|
@@ -64,7 +103,7 @@ export function startGlspServer(options) {
|
|
|
64
103
|
if (options.lspConnection && options.portCommand) {
|
|
65
104
|
options.lspConnection.onRequest(options.portCommand, () => portHandle.port);
|
|
66
105
|
}
|
|
67
|
-
lifecycle?.info(`[GlspServer] Ready to accept new client requests on port: ${address.port}`);
|
|
106
|
+
lifecycle?.info(`[GlspServer] Ready to accept new client requests on ${address.address} port: ${address.port}`);
|
|
68
107
|
started.resolve();
|
|
69
108
|
}
|
|
70
109
|
else {
|
|
@@ -75,7 +114,7 @@ export function startGlspServer(options) {
|
|
|
75
114
|
}
|
|
76
115
|
});
|
|
77
116
|
netServer.on('error', (err) => {
|
|
78
|
-
lifecycle?.error(`[GlspServer] Error: ${err
|
|
117
|
+
lifecycle?.error(`[GlspServer] Error: ${describeErrorWithStack(err)}`);
|
|
79
118
|
started.reject(err);
|
|
80
119
|
});
|
|
81
120
|
if (options.onClientConnection) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"start-glsp-server.js","sourceRoot":"","sources":["../../src/node/start-glsp-server.ts"],"names":[],"mappings":"AAAA;;;;;;;kFAOkF
|
|
1
|
+
{"version":3,"file":"start-glsp-server.js","sourceRoot":"","sources":["../../src/node/start-glsp-server.ts"],"names":[],"mappings":"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"}
|