@eclipse-glsp/server 2.6.0-next.3 → 2.7.0-next.6
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/lib/browser/di/app-module.d.ts +1 -1
- package/lib/browser/di/app-module.d.ts.map +1 -1
- package/lib/browser/di/app-module.js +5 -1
- package/lib/browser/di/app-module.js.map +1 -1
- package/lib/browser/di/browser-action-dispatch-scope.d.ts +39 -0
- package/lib/browser/di/browser-action-dispatch-scope.d.ts.map +1 -0
- package/lib/browser/di/browser-action-dispatch-scope.js +77 -0
- package/lib/browser/di/browser-action-dispatch-scope.js.map +1 -0
- package/lib/browser/di/browser-dispatch-context.d.ts +39 -0
- package/lib/browser/di/browser-dispatch-context.d.ts.map +1 -0
- package/lib/browser/di/browser-dispatch-context.js +57 -0
- package/lib/browser/di/browser-dispatch-context.js.map +1 -0
- package/lib/browser/di/sync-dispatch-context.d.ts +39 -0
- package/lib/browser/di/sync-dispatch-context.d.ts.map +1 -0
- package/lib/browser/di/sync-dispatch-context.js +57 -0
- package/lib/browser/di/sync-dispatch-context.js.map +1 -0
- package/lib/browser/index.d.ts +2 -1
- package/lib/browser/index.d.ts.map +1 -1
- package/lib/browser/index.js +2 -1
- package/lib/browser/index.js.map +1 -1
- package/lib/common/actions/action-dispatcher.d.ts +107 -5
- package/lib/common/actions/action-dispatcher.d.ts.map +1 -1
- package/lib/common/actions/action-dispatcher.js +199 -26
- package/lib/common/actions/action-dispatcher.js.map +1 -1
- package/lib/common/actions/client-action-handler.d.ts +1 -1
- package/lib/common/actions/client-action-handler.js +2 -2
- package/lib/common/actions/client-action-handler.js.map +1 -1
- package/lib/common/actions/global-action-provider.js +1 -2
- package/lib/common/actions/global-action-provider.js.map +1 -1
- package/lib/common/di/service-identifiers.d.ts +1 -1
- package/lib/common/features/clipboard/request-clipboard-data-action-handler.d.ts +1 -1
- package/lib/common/features/clipboard/request-clipboard-data-action-handler.js +1 -2
- package/lib/common/features/clipboard/request-clipboard-data-action-handler.js.map +1 -1
- package/lib/common/features/layout/computed-bounds-action-handler.d.ts +1 -1
- package/lib/common/features/layout/computed-bounds-action-handler.d.ts.map +1 -1
- package/lib/common/features/layout/computed-bounds-action-handler.js +1 -1
- package/lib/common/features/layout/computed-bounds-action-handler.js.map +1 -1
- package/lib/common/features/model/model-submission-handler.d.ts +6 -4
- package/lib/common/features/model/model-submission-handler.d.ts.map +1 -1
- package/lib/common/features/model/model-submission-handler.js +7 -5
- package/lib/common/features/model/model-submission-handler.js.map +1 -1
- package/lib/common/features/model/request-model-action-handler.d.ts +1 -1
- package/lib/common/features/model/request-model-action-handler.js +1 -1
- package/lib/common/features/progress/progress-service.js +1 -1
- package/lib/common/index.d.ts +2 -1
- package/lib/common/index.d.ts.map +1 -1
- package/lib/common/index.js +2 -1
- package/lib/common/index.js.map +1 -1
- package/lib/common/protocol/glsp-server.d.ts +4 -2
- package/lib/common/protocol/glsp-server.d.ts.map +1 -1
- package/lib/common/protocol/glsp-server.js +35 -4
- package/lib/common/protocol/glsp-server.js.map +1 -1
- package/lib/common/utils/action-channel.d.ts +58 -0
- package/lib/common/utils/action-channel.d.ts.map +1 -0
- package/lib/common/utils/action-channel.js +99 -0
- package/lib/common/utils/action-channel.js.map +1 -0
- package/lib/common/utils/action-queue.d.ts +58 -0
- package/lib/common/utils/action-queue.d.ts.map +1 -0
- package/lib/common/utils/action-queue.js +99 -0
- package/lib/common/utils/action-queue.js.map +1 -0
- package/lib/common/utils/promise-queue.d.ts +5 -1
- package/lib/common/utils/promise-queue.d.ts.map +1 -1
- package/lib/common/utils/promise-queue.js +5 -1
- package/lib/common/utils/promise-queue.js.map +1 -1
- package/lib/node/di/app-module.d.ts +1 -1
- package/lib/node/di/app-module.d.ts.map +1 -1
- package/lib/node/di/app-module.js +2 -0
- package/lib/node/di/app-module.js.map +1 -1
- package/lib/node/di/async-dispatch-context.d.ts +26 -0
- package/lib/node/di/async-dispatch-context.d.ts.map +1 -0
- package/lib/node/di/async-dispatch-context.js +35 -0
- package/lib/node/di/async-dispatch-context.js.map +1 -0
- package/lib/node/di/node-action-dispatch-scope.d.ts +26 -0
- package/lib/node/di/node-action-dispatch-scope.d.ts.map +1 -0
- package/lib/node/di/node-action-dispatch-scope.js +45 -0
- package/lib/node/di/node-action-dispatch-scope.js.map +1 -0
- package/lib/node/di/node-dispatch-context.d.ts +26 -0
- package/lib/node/di/node-dispatch-context.d.ts.map +1 -0
- package/lib/node/di/node-dispatch-context.js +35 -0
- package/lib/node/di/node-dispatch-context.js.map +1 -0
- package/lib/node/index.d.ts +2 -1
- package/lib/node/index.d.ts.map +1 -1
- package/lib/node/index.js +2 -1
- package/lib/node/index.js.map +1 -1
- package/package.json +4 -4
- package/src/browser/di/app-module.ts +6 -2
- package/src/browser/di/browser-action-dispatch-scope.spec.ts +75 -0
- package/src/browser/di/browser-action-dispatch-scope.ts +67 -0
- package/src/browser/index.ts +2 -1
- package/src/common/actions/action-dispatcher.ts +292 -25
- package/src/common/actions/client-action-handler.ts +2 -2
- package/src/common/actions/global-action-provider.ts +2 -2
- package/src/common/command/recording-command.spec.ts +1 -2
- package/src/common/di/service-identifiers.ts +1 -1
- package/src/common/features/clipboard/request-clipboard-data-action-handler.ts +2 -2
- package/src/common/features/contextactions/context-actions-provider-registry.spec.ts +2 -2
- package/src/common/features/layout/computed-bounds-action-handler.ts +6 -3
- package/src/common/features/model/model-submission-handler.ts +8 -5
- package/src/common/features/model/request-model-action-handler.ts +1 -1
- package/src/common/features/progress/progress-service.ts +1 -1
- package/src/common/index.ts +2 -1
- package/src/common/protocol/glsp-server.ts +41 -2
- package/src/common/test/mock-util.ts +17 -3
- package/src/common/utils/action-queue.spec.ts +133 -0
- package/src/common/utils/action-queue.ts +107 -0
- package/src/common/utils/promise-queue.spec.ts +6 -2
- package/src/common/utils/promise-queue.ts +5 -1
- package/src/node/actions/action-dispatcher.spec.ts +656 -0
- package/src/node/di/app-module.ts +4 -2
- package/src/node/di/node-action-dispatch-scope.ts +35 -0
- package/src/node/index.ts +2 -1
- package/src/common/actions/action-dispatcher.spec.ts +0 -291
package/lib/common/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2022-
|
|
2
|
+
* Copyright (c) 2022-2026 STMicroelectronics and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -94,6 +94,7 @@ export * from './session/client-session-factory';
|
|
|
94
94
|
export * from './session/client-session-initializer';
|
|
95
95
|
export * from './session/client-session-listener';
|
|
96
96
|
export * from './session/client-session-manager';
|
|
97
|
+
export * from './utils/action-queue';
|
|
97
98
|
export * from './utils/args-util';
|
|
98
99
|
export * from './utils/client-options-util';
|
|
99
100
|
export * from './utils/console-logger';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":"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"}
|
package/lib/common/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/********************************************************************************
|
|
3
|
-
* Copyright (c) 2022-
|
|
3
|
+
* Copyright (c) 2022-2026 STMicroelectronics and others.
|
|
4
4
|
*
|
|
5
5
|
* This program and the accompanying materials are made available under the
|
|
6
6
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -110,6 +110,7 @@ __exportStar(require("./session/client-session-factory"), exports);
|
|
|
110
110
|
__exportStar(require("./session/client-session-initializer"), exports);
|
|
111
111
|
__exportStar(require("./session/client-session-listener"), exports);
|
|
112
112
|
__exportStar(require("./session/client-session-manager"), exports);
|
|
113
|
+
__exportStar(require("./utils/action-queue"), exports);
|
|
113
114
|
__exportStar(require("./utils/args-util"), exports);
|
|
114
115
|
__exportStar(require("./utils/client-options-util"), exports);
|
|
115
116
|
__exportStar(require("./utils/console-logger"), exports);
|
package/lib/common/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;kFAckF;;;;;;;;;;;;;;;;AAElF,8DAA4C;AAC5C,2DAAyC;AACzC,oEAAkD;AAClD,kEAAgD;AAChD,mEAAiD;AACjD,oDAAkC;AAClC,0DAAwC;AACxC,8DAA4C;AAC5C,qEAAmD;AACnD,sDAAoC;AACpC,6DAA2C;AAC3C,sDAAoC;AACpC,mDAAiC;AACjC,qDAAmC;AACnC,qDAAmC;AACnC,2DAAyC;AACzC,kEAAgD;AAChD,6FAA2E;AAC3E,4FAA0E;AAC1E,qFAAmE;AACnE,8FAA4E;AAC5E,uFAAqE;AACrE,4FAA0E;AAC1E,uFAAqE;AACrE,kFAAgE;AAChE,2FAAyE;AACzE,gFAA8D;AAC9D,2FAAyE;AACzE,mFAAiE;AACjE,kEAAgD;AAChD,6EAA2D;AAC3D,kEAAgD;AAChD,gEAA8C;AAC9C,qEAAmD;AACnD,+DAA6C;AAC7C,4EAA0D;AAC1D,gFAA8D;AAC9D,6EAA2D;AAC3D,wEAAsD;AACtD,4EAA0D;AAC1D,mFAAiE;AACjE,4FAA0E;AAC1E,qFAAmE;AACnE,mFAAiE;AACjE,kGAAgF;AAChF,kGAAgF;AAChF,uEAAqD;AACrD,sFAAoE;AACpE,uEAAqD;AACrD,8EAA4D;AAC5D,0FAAwE;AACxE,0FAAwE;AACxE,wEAAsD;AACtD,gFAA8D;AAC9D,8EAA4D;AAC5D,2EAAyD;AACzD,mFAAiE;AACjE,iEAA+C;AAC/C,oEAAkD;AAClD,gFAA8D;AAC9D,gFAA8D;AAC9D,iEAA+C;AAC/C,oEAAkD;AAClD,mEAAiD;AACjD,4EAA0D;AAC1D,gEAA8C;AAC9C,mEAAiD;AACjD,0EAAwD;AACxD,wEAAsD;AACtD,sEAAoD;AACpD,wEAAsD;AACtD,iEAA+C;AAC/C,0EAAwD;AACxD,2DAAyC;AACzC,yDAAuC;AACvC,6CAA2B;AAC3B,2DAAyC;AACzC,mEAAiD;AACjD,uEAAqD;AACrD,oEAAkD;AAClD,mEAAiD;AACjD,oDAAkC;AAClC,8DAA4C;AAC5C,yDAAuC;AACvC,4DAA0C;AAC1C,sDAAoC;AACpC,iDAA+B;AAC/B,wDAAsC;AACtC,mDAAiC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/common/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;kFAckF;;;;;;;;;;;;;;;;AAElF,8DAA4C;AAC5C,2DAAyC;AACzC,oEAAkD;AAClD,kEAAgD;AAChD,mEAAiD;AACjD,oDAAkC;AAClC,0DAAwC;AACxC,8DAA4C;AAC5C,qEAAmD;AACnD,sDAAoC;AACpC,6DAA2C;AAC3C,sDAAoC;AACpC,mDAAiC;AACjC,qDAAmC;AACnC,qDAAmC;AACnC,2DAAyC;AACzC,kEAAgD;AAChD,6FAA2E;AAC3E,4FAA0E;AAC1E,qFAAmE;AACnE,8FAA4E;AAC5E,uFAAqE;AACrE,4FAA0E;AAC1E,uFAAqE;AACrE,kFAAgE;AAChE,2FAAyE;AACzE,gFAA8D;AAC9D,2FAAyE;AACzE,mFAAiE;AACjE,kEAAgD;AAChD,6EAA2D;AAC3D,kEAAgD;AAChD,gEAA8C;AAC9C,qEAAmD;AACnD,+DAA6C;AAC7C,4EAA0D;AAC1D,gFAA8D;AAC9D,6EAA2D;AAC3D,wEAAsD;AACtD,4EAA0D;AAC1D,mFAAiE;AACjE,4FAA0E;AAC1E,qFAAmE;AACnE,mFAAiE;AACjE,kGAAgF;AAChF,kGAAgF;AAChF,uEAAqD;AACrD,sFAAoE;AACpE,uEAAqD;AACrD,8EAA4D;AAC5D,0FAAwE;AACxE,0FAAwE;AACxE,wEAAsD;AACtD,gFAA8D;AAC9D,8EAA4D;AAC5D,2EAAyD;AACzD,mFAAiE;AACjE,iEAA+C;AAC/C,oEAAkD;AAClD,gFAA8D;AAC9D,gFAA8D;AAC9D,iEAA+C;AAC/C,oEAAkD;AAClD,mEAAiD;AACjD,4EAA0D;AAC1D,gEAA8C;AAC9C,mEAAiD;AACjD,0EAAwD;AACxD,wEAAsD;AACtD,sEAAoD;AACpD,wEAAsD;AACtD,iEAA+C;AAC/C,0EAAwD;AACxD,2DAAyC;AACzC,yDAAuC;AACvC,6CAA2B;AAC3B,2DAAyC;AACzC,mEAAiD;AACjD,uEAAqD;AACrD,oEAAkD;AAClD,mEAAiD;AACjD,uDAAqC;AACrC,oDAAkC;AAClC,8DAA4C;AAC5C,yDAAuC;AACvC,4DAA0C;AAC1C,sDAAoC;AACpC,iDAA+B;AAC/B,wDAAsC;AACtC,mDAAiC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2022-
|
|
2
|
+
* Copyright (c) 2022-2026 STMicroelectronics and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -13,7 +13,7 @@
|
|
|
13
13
|
*
|
|
14
14
|
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
15
|
********************************************************************************/
|
|
16
|
-
import { ActionMessage, Args, DisposeClientSessionParameters, GLSPClientProxy, GLSPServer, GLSPServerListener, InitializeClientSessionParameters, InitializeParameters, InitializeResult, MaybePromise } from '@eclipse-glsp/protocol';
|
|
16
|
+
import { ActionMessage, Args, DisposeClientSessionParameters, GLSPClientProxy, GLSPServer, GLSPServerListener, InitializeClientSessionParameters, InitializeParameters, InitializeResult, MaybePromise, RequestAction, ResponseAction } from '@eclipse-glsp/protocol';
|
|
17
17
|
import { GlobalActionProvider } from '../actions/global-action-provider';
|
|
18
18
|
import { ClientSession } from '../session/client-session';
|
|
19
19
|
import { ClientSessionManager } from '../session/client-session-manager';
|
|
@@ -38,6 +38,8 @@ export declare class DefaultGLSPServer implements GLSPServer {
|
|
|
38
38
|
disposeClientSession(params: DisposeClientSessionParameters): Promise<void>;
|
|
39
39
|
protected handleDisposeClientSessionArgs(args: Args | undefined): Promise<void>;
|
|
40
40
|
process(message: ActionMessage): void;
|
|
41
|
+
protected handleClientRequest(clientSession: ClientSession, action: RequestAction<ResponseAction>, clientId: string): Promise<void>;
|
|
42
|
+
protected sendResponseToClient(clientId: string, response: ResponseAction): void;
|
|
41
43
|
protected handleProcessError(message: ActionMessage, reason: any): void | PromiseLike<void>;
|
|
42
44
|
protected sendToClient(message: ActionMessage): void;
|
|
43
45
|
getClientSession(sessionId: string): ClientSession | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glsp-server.d.ts","sourceRoot":"","sources":["../../../src/common/protocol/glsp-server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAClF,OAAO,EACH,aAAa,EACb,IAAI,EACJ,8BAA8B,EAC9B,eAAe,EACf,UAAU,EACV,kBAAkB,EAClB,iCAAiC,EACjC,oBAAoB,EACpB,gBAAgB,EAChB,YAAY,
|
|
1
|
+
{"version":3,"file":"glsp-server.d.ts","sourceRoot":"","sources":["../../../src/common/protocol/glsp-server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAClF,OAAO,EACH,aAAa,EACb,IAAI,EACJ,8BAA8B,EAC9B,eAAe,EACf,UAAU,EACV,kBAAkB,EAClB,iCAAiC,EACjC,oBAAoB,EACpB,gBAAgB,EAChB,YAAY,EAGZ,aAAa,EACb,cAAc,EAIjB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AAEzE,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAGzC,qBACa,iBAAkB,YAAW,UAAU;IAChD,gBAAuB,gBAAgB,WAAW;IAGlD,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;IAGzB,SAAS,CAAC,cAAc,EAAE,oBAAoB,CAAC;IAG/C,SAAS,CAAC,cAAc,EAAE,oBAAoB,CAAC;IAG/C,SAAS,CAAC,eAAe,EAAE,eAAe,CAAC;IAE3C,SAAS,CAAC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IAE9C,SAAS,CAAC,aAAa,EAAE,MAAM,CAAC;IAEhC,SAAS,CAAC,cAAc,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;IACrD,SAAS,CAAC,eAAe,EAAE,kBAAkB,EAAE,CAAM;gBAEI,eAAe,GAAE,kBAAkB,EAAO;IAKnG,SAAS,CAAC,uBAAuB,CAAC,MAAM,EAAE,oBAAoB,GAAG,IAAI;IAQrE,SAAS,CAAC,yBAAyB,IAAI,IAAI;IAM9B,UAAU,CAAC,MAAM,EAAE,oBAAoB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA2BhF,SAAS,CAAC,oBAAoB,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,EAAE,IAAI,GAAG,SAAS,GAAG,YAAY,CAAC,gBAAgB,CAAC;IAInG,uBAAuB,CAAC,MAAM,EAAE,iCAAiC,GAAG,OAAO,CAAC,IAAI,CAAC;IAY9F,SAAS,CAAC,iCAAiC,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,GAAG,YAAY,CAAC,IAAI,CAAC;IAI1E,oBAAoB,CAAC,MAAM,EAAE,8BAA8B,GAAG,OAAO,CAAC,IAAI,CAAC;cAUxE,8BAA8B,CAAC,IAAI,EAAE,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrF,OAAO,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;cAkBrB,mBAAmB,CAC/B,aAAa,EAAE,aAAa,EAC5B,MAAM,EAAE,aAAa,CAAC,cAAc,CAAC,EACrC,QAAQ,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC;IAwBhB,SAAS,CAAC,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,GAAG,IAAI;IAIhF,SAAS,CAAC,kBAAkB,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,EAAE,GAAG,GAAG,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC;IAa3F,SAAS,CAAC,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAIpD,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAIvD,QAAQ,IAAI,IAAI;IAOvB,SAAS,CAAC,aAAa,IAAI,OAAO;IAIlC,WAAW,CAAC,QAAQ,EAAE,kBAAkB,GAAG,OAAO;IAKlD,cAAc,CAAC,QAAQ,EAAE,kBAAkB,GAAG,OAAO;IAKrD,SAAS,CAAC,oBAAoB,CAAC,MAAM,EAAE,MAAM,kBAAkB,GAAG,kBAAkB,EAAE;CAGzF"}
|
|
@@ -15,7 +15,7 @@ var DefaultGLSPServer_1;
|
|
|
15
15
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
16
|
exports.DefaultGLSPServer = void 0;
|
|
17
17
|
/********************************************************************************
|
|
18
|
-
* Copyright (c) 2022-
|
|
18
|
+
* Copyright (c) 2022-2026 STMicroelectronics and others.
|
|
19
19
|
*
|
|
20
20
|
* This program and the accompanying materials are made available under the
|
|
21
21
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -44,9 +44,7 @@ let DefaultGLSPServer = DefaultGLSPServer_1 = class DefaultGLSPServer {
|
|
|
44
44
|
}
|
|
45
45
|
validateProtocolVersion(params) {
|
|
46
46
|
if (params.protocolVersion !== DefaultGLSPServer_1.PROTOCOL_VERSION) {
|
|
47
|
-
throw new Error(
|
|
48
|
-
// eslint-disable-next-line max-len
|
|
49
|
-
`Protocol version mismatch! The client protocol version ${params.protocolVersion} is not compatible with the server protocol version ${DefaultGLSPServer_1.PROTOCOL_VERSION}!`);
|
|
47
|
+
throw new Error(`Protocol version mismatch! The client protocol version ${params.protocolVersion} is not compatible with the server protocol version ${DefaultGLSPServer_1.PROTOCOL_VERSION}!`);
|
|
50
48
|
}
|
|
51
49
|
}
|
|
52
50
|
validateServerInitialized() {
|
|
@@ -110,8 +108,41 @@ let DefaultGLSPServer = DefaultGLSPServer_1 = class DefaultGLSPServer {
|
|
|
110
108
|
}
|
|
111
109
|
const action = message.action;
|
|
112
110
|
client_action_1.ClientAction.mark(action);
|
|
111
|
+
if (protocol_1.RequestAction.is(action)) {
|
|
112
|
+
this.handleClientRequest(clientSession, action, message.clientId);
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
113
115
|
clientSession.actionDispatcher.dispatch(action).catch(error => this.handleProcessError(message, error));
|
|
114
116
|
}
|
|
117
|
+
// Fire-and-forget: intentionally not awaited by process()
|
|
118
|
+
async handleClientRequest(clientSession, action, clientId) {
|
|
119
|
+
var _a, _b, _c;
|
|
120
|
+
try {
|
|
121
|
+
const response = action.timeout !== undefined
|
|
122
|
+
? await clientSession.actionDispatcher.requestUntil(action, action.timeout, true)
|
|
123
|
+
: await clientSession.actionDispatcher.request(action);
|
|
124
|
+
if (response) {
|
|
125
|
+
this.sendResponseToClient(clientId, response);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
catch (error) {
|
|
129
|
+
const detail = error instanceof glsp_server_error_1.GLSPServerError ? (_b = (_a = error.cause) === null || _a === void 0 ? void 0 : _a.toString) === null || _b === void 0 ? void 0 : _b.call(_a) : (_c = error === null || error === void 0 ? void 0 : error.toString) === null || _c === void 0 ? void 0 : _c.call(error);
|
|
130
|
+
this.logger.error(`Failed to handle request '${action.kind}' (${action.requestId}):`, detail);
|
|
131
|
+
try {
|
|
132
|
+
const reject = protocol_1.RejectAction.create(`Failed to handle request '${action.kind}' (${action.requestId})`, {
|
|
133
|
+
responseId: action.requestId,
|
|
134
|
+
detail
|
|
135
|
+
});
|
|
136
|
+
this.sendResponseToClient(clientId, reject);
|
|
137
|
+
}
|
|
138
|
+
catch (sendError) {
|
|
139
|
+
this.logger.error(`Failed to send rejection for request '${action.requestId}':`, sendError);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
sendResponseToClient(clientId, response) {
|
|
144
|
+
this.sendToClient({ clientId, action: response });
|
|
145
|
+
}
|
|
115
146
|
handleProcessError(message, reason) {
|
|
116
147
|
var _a, _b, _c;
|
|
117
148
|
let errorMsg = `Could not process action: '${message.action.kind}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glsp-server.js","sourceRoot":"","sources":["../../../src/common/protocol/glsp-server.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;kFAckF;AAClF,
|
|
1
|
+
{"version":3,"file":"glsp-server.js","sourceRoot":"","sources":["../../../src/common/protocol/glsp-server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2026 EclipseSource and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
*
|
|
8
|
+
* This Source Code may also be made available under the following Secondary
|
|
9
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
* with the GNU Classpath Exception which is available at
|
|
12
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
*
|
|
14
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
/**
|
|
17
|
+
* An entry yielded by {@link ActionChannel.consume}. The consumer must call either
|
|
18
|
+
* `resolve()` or `reject(error)` exactly once after processing `item`.
|
|
19
|
+
*/
|
|
20
|
+
export interface ActionChannelEntry<T> {
|
|
21
|
+
item: T;
|
|
22
|
+
resolve: () => void;
|
|
23
|
+
reject: (error: unknown) => void;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Producer/consumer channel with a single async consumer loop. Items are processed in FIFO order.
|
|
27
|
+
*/
|
|
28
|
+
export declare class ActionChannel<T> {
|
|
29
|
+
protected queue: ActionChannelEntry<T>[];
|
|
30
|
+
protected notify: (() => void) | undefined;
|
|
31
|
+
protected stopped: boolean;
|
|
32
|
+
protected consuming: boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Enqueues an item. The returned promise settles when the consumer finishes processing it,
|
|
35
|
+
* propagating results back to the producer. Rejects immediately if the channel has been stopped.
|
|
36
|
+
*/
|
|
37
|
+
push(item: T): Promise<void>;
|
|
38
|
+
/**
|
|
39
|
+
* Yields pending entries, suspending until the next {@link push} when the queue is empty. Exits
|
|
40
|
+
* once the channel is stopped and the queue has been drained.
|
|
41
|
+
*
|
|
42
|
+
* Single-consumer: calling `consume()` a second time throws an error.
|
|
43
|
+
*/
|
|
44
|
+
consume(): AsyncGenerator<ActionChannelEntry<T>>;
|
|
45
|
+
/**
|
|
46
|
+
* Stops the channel. Further {@link push} calls reject. The consumer loop exits after
|
|
47
|
+
* the remaining queued entries have been yielded (or immediately if the queue is empty).
|
|
48
|
+
*/
|
|
49
|
+
stop(): void;
|
|
50
|
+
/**
|
|
51
|
+
* Rejects all queued entries with the given reason so producers awaiting their
|
|
52
|
+
* `push()` promises do not hang. Does not stop the channel.
|
|
53
|
+
*/
|
|
54
|
+
rejectPending(reason?: Error): void;
|
|
55
|
+
get size(): number;
|
|
56
|
+
get isStopped(): boolean;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=action-channel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action-channel.d.ts","sourceRoot":"","sources":["../../../src/common/utils/action-channel.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAElF;;;GAGG;AACH,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACjC,IAAI,EAAE,CAAC,CAAC;IACR,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACpC;AAED;;GAEG;AACH,qBAAa,aAAa,CAAC,CAAC;IACxB,SAAS,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC,EAAE,CAAM;IAC9C,SAAS,CAAC,MAAM,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IAC3C,SAAS,CAAC,OAAO,UAAS;IAC1B,SAAS,CAAC,SAAS,UAAS;IAE5B;;;OAGG;IACH,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAU5B;;;;;OAKG;IACI,OAAO,IAAI,cAAc,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;IAuBvD;;;OAGG;IACH,IAAI,IAAI,IAAI;IAKZ;;;OAGG;IACH,aAAa,CAAC,MAAM,GAAE,KAA0C,GAAG,IAAI;IAQvE,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,SAAS,IAAI,OAAO,CAEvB;CACJ"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/********************************************************************************
|
|
3
|
+
* Copyright (c) 2026 EclipseSource and others.
|
|
4
|
+
*
|
|
5
|
+
* This program and the accompanying materials are made available under the
|
|
6
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
7
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
8
|
+
*
|
|
9
|
+
* This Source Code may also be made available under the following Secondary
|
|
10
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
11
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
12
|
+
* with the GNU Classpath Exception which is available at
|
|
13
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
14
|
+
*
|
|
15
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
16
|
+
********************************************************************************/
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.ActionChannel = void 0;
|
|
19
|
+
/**
|
|
20
|
+
* Producer/consumer channel with a single async consumer loop. Items are processed in FIFO order.
|
|
21
|
+
*/
|
|
22
|
+
class ActionChannel {
|
|
23
|
+
constructor() {
|
|
24
|
+
this.queue = [];
|
|
25
|
+
this.stopped = false;
|
|
26
|
+
this.consuming = false;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Enqueues an item. The returned promise settles when the consumer finishes processing it,
|
|
30
|
+
* propagating results back to the producer. Rejects immediately if the channel has been stopped.
|
|
31
|
+
*/
|
|
32
|
+
push(item) {
|
|
33
|
+
if (this.stopped) {
|
|
34
|
+
return Promise.reject(new Error('ActionChannel is stopped'));
|
|
35
|
+
}
|
|
36
|
+
return new Promise((resolve, reject) => {
|
|
37
|
+
var _a;
|
|
38
|
+
this.queue.push({ item, resolve, reject });
|
|
39
|
+
(_a = this.notify) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Yields pending entries, suspending until the next {@link push} when the queue is empty. Exits
|
|
44
|
+
* once the channel is stopped and the queue has been drained.
|
|
45
|
+
*
|
|
46
|
+
* Single-consumer: calling `consume()` a second time throws an error.
|
|
47
|
+
*/
|
|
48
|
+
async *consume() {
|
|
49
|
+
if (this.consuming) {
|
|
50
|
+
throw new Error('ActionChannel supports only a single consumer');
|
|
51
|
+
}
|
|
52
|
+
this.consuming = true;
|
|
53
|
+
try {
|
|
54
|
+
while (!this.stopped || this.queue.length > 0) {
|
|
55
|
+
while (this.queue.length > 0) {
|
|
56
|
+
yield this.queue.shift();
|
|
57
|
+
}
|
|
58
|
+
if (this.stopped) {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
await new Promise(resolve => {
|
|
62
|
+
this.notify = resolve;
|
|
63
|
+
});
|
|
64
|
+
this.notify = undefined;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
finally {
|
|
68
|
+
this.consuming = false;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Stops the channel. Further {@link push} calls reject. The consumer loop exits after
|
|
73
|
+
* the remaining queued entries have been yielded (or immediately if the queue is empty).
|
|
74
|
+
*/
|
|
75
|
+
stop() {
|
|
76
|
+
var _a;
|
|
77
|
+
this.stopped = true;
|
|
78
|
+
(_a = this.notify) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Rejects all queued entries with the given reason so producers awaiting their
|
|
82
|
+
* `push()` promises do not hang. Does not stop the channel.
|
|
83
|
+
*/
|
|
84
|
+
rejectPending(reason = new Error('ActionChannel cleared')) {
|
|
85
|
+
const pending = this.queue;
|
|
86
|
+
this.queue = [];
|
|
87
|
+
for (const entry of pending) {
|
|
88
|
+
entry.reject(reason);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
get size() {
|
|
92
|
+
return this.queue.length;
|
|
93
|
+
}
|
|
94
|
+
get isStopped() {
|
|
95
|
+
return this.stopped;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
exports.ActionChannel = ActionChannel;
|
|
99
|
+
//# sourceMappingURL=action-channel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action-channel.js","sourceRoot":"","sources":["../../../src/common/utils/action-channel.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;kFAckF;;;AAYlF;;GAEG;AACH,MAAa,aAAa;IAA1B;QACc,UAAK,GAA4B,EAAE,CAAC;QAEpC,YAAO,GAAG,KAAK,CAAC;QAChB,cAAS,GAAG,KAAK,CAAC;IAyEhC,CAAC;IAvEG;;;OAGG;IACH,IAAI,CAAC,IAAO;QACR,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC,CAAC;QACjE,CAAC;QACD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;;YACnC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;YAC3C,MAAA,IAAI,CAAC,MAAM,oDAAI,CAAC;QACpB,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,CAAC,OAAO;QACV,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;QACrE,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5C,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC3B,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAG,CAAC;gBAC9B,CAAC;gBACD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;oBACf,OAAO;gBACX,CAAC;gBACD,MAAM,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;oBAC9B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;YAC5B,CAAC;QACL,CAAC;gBAAS,CAAC;YACP,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QAC3B,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,IAAI;;QACA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,MAAA,IAAI,CAAC,MAAM,oDAAI,CAAC;IACpB,CAAC;IAED;;;OAGG;IACH,aAAa,CAAC,SAAgB,IAAI,KAAK,CAAC,uBAAuB,CAAC;QAC5D,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC1B,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC;IACL,CAAC;IAED,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC7B,CAAC;IAED,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;CACJ;AA7ED,sCA6EC"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/********************************************************************************
|
|
2
|
+
* Copyright (c) 2026 EclipseSource and others.
|
|
3
|
+
*
|
|
4
|
+
* This program and the accompanying materials are made available under the
|
|
5
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
6
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
7
|
+
*
|
|
8
|
+
* This Source Code may also be made available under the following Secondary
|
|
9
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
10
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
11
|
+
* with the GNU Classpath Exception which is available at
|
|
12
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
13
|
+
*
|
|
14
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
15
|
+
********************************************************************************/
|
|
16
|
+
/**
|
|
17
|
+
* An entry yielded by {@link ActionQueue.consume}. The consumer must call either
|
|
18
|
+
* `resolve()` or `reject(error)` exactly once after processing `item`.
|
|
19
|
+
*/
|
|
20
|
+
export interface ActionQueueEntry<T> {
|
|
21
|
+
item: T;
|
|
22
|
+
resolve: () => void;
|
|
23
|
+
reject: (error: unknown) => void;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Producer/consumer queue with a single async consumer loop. Items are processed in FIFO order.
|
|
27
|
+
*/
|
|
28
|
+
export declare class ActionQueue<T> {
|
|
29
|
+
protected queue: ActionQueueEntry<T>[];
|
|
30
|
+
protected notify: (() => void) | undefined;
|
|
31
|
+
protected stopped: boolean;
|
|
32
|
+
protected consuming: boolean;
|
|
33
|
+
/**
|
|
34
|
+
* Enqueues an item. The returned promise settles when the consumer finishes processing it,
|
|
35
|
+
* propagating results back to the producer. Rejects immediately if the queue has been stopped.
|
|
36
|
+
*/
|
|
37
|
+
push(item: T): Promise<void>;
|
|
38
|
+
/**
|
|
39
|
+
* Yields pending entries, suspending until the next {@link push} when the queue is empty. Exits
|
|
40
|
+
* once the queue is stopped and has been drained.
|
|
41
|
+
*
|
|
42
|
+
* Single-consumer: calling `consume()` a second time throws an error.
|
|
43
|
+
*/
|
|
44
|
+
consume(): AsyncGenerator<ActionQueueEntry<T>>;
|
|
45
|
+
/**
|
|
46
|
+
* Stops the queue. Further {@link push} calls reject. The consumer loop exits after
|
|
47
|
+
* the remaining queued entries have been yielded (or immediately if the queue is empty).
|
|
48
|
+
*/
|
|
49
|
+
stop(): void;
|
|
50
|
+
/**
|
|
51
|
+
* Rejects all queued entries with the given reason so producers awaiting their
|
|
52
|
+
* `push()` promises do not hang. Does not stop the queue.
|
|
53
|
+
*/
|
|
54
|
+
rejectPending(reason?: Error): void;
|
|
55
|
+
get size(): number;
|
|
56
|
+
get isStopped(): boolean;
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=action-queue.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action-queue.d.ts","sourceRoot":"","sources":["../../../src/common/utils/action-queue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAElF;;;GAGG;AACH,MAAM,WAAW,gBAAgB,CAAC,CAAC;IAC/B,IAAI,EAAE,CAAC,CAAC;IACR,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC;CACpC;AAED;;GAEG;AACH,qBAAa,WAAW,CAAC,CAAC;IACtB,SAAS,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,CAAM;IAC5C,SAAS,CAAC,MAAM,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IAC3C,SAAS,CAAC,OAAO,UAAS;IAC1B,SAAS,CAAC,SAAS,UAAS;IAE5B;;;OAGG;IACH,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAU5B;;;;;OAKG;IACI,OAAO,IAAI,cAAc,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAuBrD;;;OAGG;IACH,IAAI,IAAI,IAAI;IAKZ;;;OAGG;IACH,aAAa,CAAC,MAAM,GAAE,KAAwC,GAAG,IAAI;IAQrE,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,SAAS,IAAI,OAAO,CAEvB;CACJ"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/********************************************************************************
|
|
3
|
+
* Copyright (c) 2026 EclipseSource and others.
|
|
4
|
+
*
|
|
5
|
+
* This program and the accompanying materials are made available under the
|
|
6
|
+
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
7
|
+
* http://www.eclipse.org/legal/epl-2.0.
|
|
8
|
+
*
|
|
9
|
+
* This Source Code may also be made available under the following Secondary
|
|
10
|
+
* Licenses when the conditions for such availability set forth in the Eclipse
|
|
11
|
+
* Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
12
|
+
* with the GNU Classpath Exception which is available at
|
|
13
|
+
* https://www.gnu.org/software/classpath/license.html.
|
|
14
|
+
*
|
|
15
|
+
* SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
|
|
16
|
+
********************************************************************************/
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.ActionQueue = void 0;
|
|
19
|
+
/**
|
|
20
|
+
* Producer/consumer queue with a single async consumer loop. Items are processed in FIFO order.
|
|
21
|
+
*/
|
|
22
|
+
class ActionQueue {
|
|
23
|
+
constructor() {
|
|
24
|
+
this.queue = [];
|
|
25
|
+
this.stopped = false;
|
|
26
|
+
this.consuming = false;
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Enqueues an item. The returned promise settles when the consumer finishes processing it,
|
|
30
|
+
* propagating results back to the producer. Rejects immediately if the queue has been stopped.
|
|
31
|
+
*/
|
|
32
|
+
push(item) {
|
|
33
|
+
if (this.stopped) {
|
|
34
|
+
return Promise.reject(new Error('ActionQueue is stopped'));
|
|
35
|
+
}
|
|
36
|
+
return new Promise((resolve, reject) => {
|
|
37
|
+
var _a;
|
|
38
|
+
this.queue.push({ item, resolve, reject });
|
|
39
|
+
(_a = this.notify) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Yields pending entries, suspending until the next {@link push} when the queue is empty. Exits
|
|
44
|
+
* once the queue is stopped and has been drained.
|
|
45
|
+
*
|
|
46
|
+
* Single-consumer: calling `consume()` a second time throws an error.
|
|
47
|
+
*/
|
|
48
|
+
async *consume() {
|
|
49
|
+
if (this.consuming) {
|
|
50
|
+
throw new Error('ActionQueue supports only a single consumer');
|
|
51
|
+
}
|
|
52
|
+
this.consuming = true;
|
|
53
|
+
try {
|
|
54
|
+
while (!this.stopped || this.queue.length > 0) {
|
|
55
|
+
while (this.queue.length > 0) {
|
|
56
|
+
yield this.queue.shift();
|
|
57
|
+
}
|
|
58
|
+
if (this.stopped) {
|
|
59
|
+
return;
|
|
60
|
+
}
|
|
61
|
+
await new Promise(resolve => {
|
|
62
|
+
this.notify = resolve;
|
|
63
|
+
});
|
|
64
|
+
this.notify = undefined;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
finally {
|
|
68
|
+
this.consuming = false;
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
/**
|
|
72
|
+
* Stops the queue. Further {@link push} calls reject. The consumer loop exits after
|
|
73
|
+
* the remaining queued entries have been yielded (or immediately if the queue is empty).
|
|
74
|
+
*/
|
|
75
|
+
stop() {
|
|
76
|
+
var _a;
|
|
77
|
+
this.stopped = true;
|
|
78
|
+
(_a = this.notify) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Rejects all queued entries with the given reason so producers awaiting their
|
|
82
|
+
* `push()` promises do not hang. Does not stop the queue.
|
|
83
|
+
*/
|
|
84
|
+
rejectPending(reason = new Error('ActionQueue cleared')) {
|
|
85
|
+
const pending = this.queue;
|
|
86
|
+
this.queue = [];
|
|
87
|
+
for (const entry of pending) {
|
|
88
|
+
entry.reject(reason);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
get size() {
|
|
92
|
+
return this.queue.length;
|
|
93
|
+
}
|
|
94
|
+
get isStopped() {
|
|
95
|
+
return this.stopped;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
exports.ActionQueue = ActionQueue;
|
|
99
|
+
//# sourceMappingURL=action-queue.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action-queue.js","sourceRoot":"","sources":["../../../src/common/utils/action-queue.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;kFAckF;;;AAYlF;;GAEG;AACH,MAAa,WAAW;IAAxB;QACc,UAAK,GAA0B,EAAE,CAAC;QAElC,YAAO,GAAG,KAAK,CAAC;QAChB,cAAS,GAAG,KAAK,CAAC;IAyEhC,CAAC;IAvEG;;;OAGG;IACH,IAAI,CAAC,IAAO;QACR,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACf,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC;QAC/D,CAAC;QACD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;;YACnC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC,CAAC;YAC3C,MAAA,IAAI,CAAC,MAAM,oDAAI,CAAC;QACpB,CAAC,CAAC,CAAC;IACP,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,CAAC,OAAO;QACV,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACnE,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5C,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC3B,MAAM,IAAI,CAAC,KAAK,CAAC,KAAK,EAAG,CAAC;gBAC9B,CAAC;gBACD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;oBACf,OAAO;gBACX,CAAC;gBACD,MAAM,IAAI,OAAO,CAAO,OAAO,CAAC,EAAE;oBAC9B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC;gBAC1B,CAAC,CAAC,CAAC;gBACH,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC;YAC5B,CAAC;QACL,CAAC;gBAAS,CAAC;YACP,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QAC3B,CAAC;IACL,CAAC;IAED;;;OAGG;IACH,IAAI;;QACA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACpB,MAAA,IAAI,CAAC,MAAM,oDAAI,CAAC;IACpB,CAAC;IAED;;;OAGG;IACH,aAAa,CAAC,SAAgB,IAAI,KAAK,CAAC,qBAAqB,CAAC;QAC1D,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC;QAC3B,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;QAChB,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC1B,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;QACzB,CAAC;IACL,CAAC;IAED,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC7B,CAAC;IAED,IAAI,SAAS;QACT,OAAO,IAAI,CAAC,OAAO,CAAC;IACxB,CAAC;CACJ;AA7ED,kCA6EC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2022-
|
|
2
|
+
* Copyright (c) 2022-2026 STMicroelectronics and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -27,6 +27,10 @@ export interface PromiseQueueElement<T = void> {
|
|
|
27
27
|
* of promises. Promises that are put in this queue are processed one by one.
|
|
28
28
|
* i.e. After the first promise in the queue is resolved, it will be removed from the queue and the resolving of the
|
|
29
29
|
* the next promise (if present) will start. The queue can only resolve one promise at a given time.
|
|
30
|
+
*
|
|
31
|
+
* @deprecated Since 2.7. The `DefaultActionDispatcher` no longer uses this queue. Kept for
|
|
32
|
+
* backwards compatibility; will be removed in a future release. New code should use
|
|
33
|
+
* {@link ActionQueue} or native async patterns instead.
|
|
30
34
|
*/
|
|
31
35
|
export declare class PromiseQueue<T = void> {
|
|
32
36
|
protected queue: PromiseQueueElement<T>[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promise-queue.d.ts","sourceRoot":"","sources":["../../../src/common/utils/promise-queue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAElF;;;GAGG;AACH,MAAM,WAAW,mBAAmB,CAAC,CAAC,GAAG,IAAI;IACzC,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;IAC1B,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IAC5B,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;CAClC;AAED
|
|
1
|
+
{"version":3,"file":"promise-queue.d.ts","sourceRoot":"","sources":["../../../src/common/utils/promise-queue.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAElF;;;GAGG;AACH,MAAM,WAAW,mBAAmB,CAAC,CAAC,GAAG,IAAI;IACzC,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC;IAC1B,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IAC5B,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;CAClC;AAED;;;;;;;;;GASG;AACH,qBAAa,YAAY,CAAC,CAAC,GAAG,IAAI;IAC9B,SAAS,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC,CAAC,EAAE,CAAM;IAC/C,SAAS,CAAC,IAAI,UAAS;IAEvB;;;;;OAKG;IACH,OAAO,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAY9C,SAAS,CAAC,OAAO,IAAI,OAAO;cAoBZ,oBAAoB,CAAC,OAAO,EAAE,mBAAmB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAYpF,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,KAAK,IAAI,IAAI;CAGhB"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
/********************************************************************************
|
|
3
|
-
* Copyright (c) 2022-
|
|
3
|
+
* Copyright (c) 2022-2026 STMicroelectronics and others.
|
|
4
4
|
*
|
|
5
5
|
* This program and the accompanying materials are made available under the
|
|
6
6
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -21,6 +21,10 @@ exports.PromiseQueue = void 0;
|
|
|
21
21
|
* of promises. Promises that are put in this queue are processed one by one.
|
|
22
22
|
* i.e. After the first promise in the queue is resolved, it will be removed from the queue and the resolving of the
|
|
23
23
|
* the next promise (if present) will start. The queue can only resolve one promise at a given time.
|
|
24
|
+
*
|
|
25
|
+
* @deprecated Since 2.7. The `DefaultActionDispatcher` no longer uses this queue. Kept for
|
|
26
|
+
* backwards compatibility; will be removed in a future release. New code should use
|
|
27
|
+
* {@link ActionQueue} or native async patterns instead.
|
|
24
28
|
*/
|
|
25
29
|
class PromiseQueue {
|
|
26
30
|
constructor() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"promise-queue.js","sourceRoot":"","sources":["../../../src/common/utils/promise-queue.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;kFAckF;;;AAYlF
|
|
1
|
+
{"version":3,"file":"promise-queue.js","sourceRoot":"","sources":["../../../src/common/utils/promise-queue.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;kFAckF;;;AAYlF;;;;;;;;;GASG;AACH,MAAa,YAAY;IAAzB;QACc,UAAK,GAA6B,EAAE,CAAC;QACrC,SAAI,GAAG,KAAK,CAAC;IAmE3B,CAAC;IAjEG;;;;;OAKG;IACH,OAAO,CAAC,OAAyB;QAC7B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACnC,MAAM,OAAO,GAAG;gBACZ,OAAO;gBACP,OAAO;gBACP,MAAM;aACT,CAAC;YACF,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YACzB,IAAI,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC,CAAC,CAAC;IACP,CAAC;IAES,OAAO;QACb,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;YACZ,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;QACnC,IAAI,CAAC,OAAO,EAAE,CAAC;YACX,OAAO,KAAK,CAAC;QACjB,CAAC;QAED,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE;YAC7C,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACtB,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;YAClB,IAAI,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,CAAC;IAChB,CAAC;IAES,KAAK,CAAC,oBAAoB,CAAC,OAA+B;QAChE,IAAI,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;YACtC,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAClC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACb,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC;gBAAS,CAAC;YACP,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;YAClB,IAAI,CAAC,OAAO,EAAE,CAAC;QACnB,CAAC;IACL,CAAC;IAED,IAAI,MAAM;QACN,OAAO,IAAI,CAAC,IAAI,CAAC;IACrB,CAAC;IAED,IAAI,IAAI;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC7B,CAAC;IAED,IAAI,OAAO;QACP,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,CAAC;IACnC,CAAC;IAED,KAAK;QACD,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;IACpB,CAAC;CACJ;AArED,oCAqEC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/********************************************************************************
|
|
2
|
-
* Copyright (c) 2022-
|
|
2
|
+
* Copyright (c) 2022-2026 STMicroelectronics and others.
|
|
3
3
|
*
|
|
4
4
|
* This program and the accompanying materials are made available under the
|
|
5
5
|
* terms of the Eclipse Public License v. 2.0 which is available at
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-module.d.ts","sourceRoot":"","sources":["../../../src/node/di/app-module.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAEnC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"app-module.d.ts","sourceRoot":"","sources":["../../../src/node/di/app-module.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;kFAckF;AAClF,OAAO,EAAE,cAAc,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAEnC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAIrD,wBAAgB,eAAe,CAAC,OAAO,EAAE,aAAa,GAAG,eAAe,CAOvE;AAED;;;;;GAKG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,aAAa,EAAE,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,CAyBzF;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,CAAC,SAAS,aAAa,EAC1D,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,CAAC,EACV,MAAM,UAAO,EACb,iBAAiB,GAAE,CAAC,aAAa,EAAE,CAAC,KAAK,OAAO,CAAC,MAA8B,GAChF,IAAI,CAwBN"}
|
|
@@ -6,10 +6,12 @@ exports.configureWinstonLogger = configureWinstonLogger;
|
|
|
6
6
|
const inversify_1 = require("inversify");
|
|
7
7
|
const winston = require("winston");
|
|
8
8
|
const common_1 = require("../../common");
|
|
9
|
+
const node_action_dispatch_scope_1 = require("./node-action-dispatch-scope");
|
|
9
10
|
const winston_logger_1 = require("./winston-logger");
|
|
10
11
|
function createAppModule(options) {
|
|
11
12
|
return new inversify_1.ContainerModule((bind, unbind, isBound, rebind) => {
|
|
12
13
|
bind(common_1.InjectionContainer).toDynamicValue(dynamicContext => dynamicContext.container);
|
|
14
|
+
bind(common_1.ActionDispatchScope).to(node_action_dispatch_scope_1.NodeActionDispatchScope).inSingletonScope();
|
|
13
15
|
const context = { bind, unbind, isBound, rebind };
|
|
14
16
|
configureWinstonLogger(context, options);
|
|
15
17
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-module.js","sourceRoot":"","sources":["../../../src/node/di/app-module.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"app-module.js","sourceRoot":"","sources":["../../../src/node/di/app-module.ts"],"names":[],"mappings":"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"}
|