chromium-bidi 0.4.16 → 0.4.18
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/.browser +1 -1
- package/README.md +13 -2
- package/lib/cjs/bidiMapper/BidiNoOpParser.d.ts +41 -0
- package/lib/cjs/bidiMapper/BidiNoOpParser.js +100 -0
- package/lib/cjs/bidiMapper/BidiNoOpParser.js.map +1 -0
- package/lib/cjs/bidiMapper/BidiParser.d.ts +40 -0
- package/lib/cjs/bidiMapper/BidiParser.js +19 -0
- package/lib/cjs/bidiMapper/BidiParser.js.map +1 -0
- package/lib/cjs/bidiMapper/BidiServer.d.ts +9 -9
- package/lib/cjs/bidiMapper/BidiServer.js.map +1 -1
- package/lib/cjs/bidiMapper/BidiTransport.d.ts +4 -4
- package/lib/cjs/bidiMapper/CommandProcessor.d.ts +7 -27
- package/lib/cjs/bidiMapper/CommandProcessor.js +83 -108
- package/lib/cjs/bidiMapper/CommandProcessor.js.map +1 -1
- package/lib/cjs/bidiMapper/OutgoingBidiMessage.d.ts +4 -4
- package/lib/cjs/bidiMapper/OutgoingBidiMessage.js.map +1 -1
- package/lib/cjs/bidiMapper/bidiMapper.d.ts +2 -2
- package/lib/cjs/bidiMapper/domains/context/browsingContextImpl.d.ts +10 -7
- package/lib/cjs/bidiMapper/domains/context/browsingContextImpl.js +130 -65
- package/lib/cjs/bidiMapper/domains/context/browsingContextImpl.js.map +1 -1
- package/lib/cjs/bidiMapper/domains/context/browsingContextProcessor.d.ts +11 -16
- package/lib/cjs/bidiMapper/domains/context/browsingContextProcessor.js +69 -176
- package/lib/cjs/bidiMapper/domains/context/browsingContextProcessor.js.map +1 -1
- package/lib/cjs/bidiMapper/domains/context/browsingContextStorage.d.ts +6 -6
- package/lib/cjs/bidiMapper/domains/context/browsingContextStorage.js +1 -1
- package/lib/cjs/bidiMapper/domains/context/browsingContextStorage.js.map +1 -1
- package/lib/cjs/bidiMapper/domains/context/cdpTarget.d.ts +7 -8
- package/lib/cjs/bidiMapper/domains/context/cdpTarget.js +25 -35
- package/lib/cjs/bidiMapper/domains/context/cdpTarget.js.map +1 -1
- package/lib/cjs/bidiMapper/domains/events/EventManager.d.ts +9 -9
- package/lib/cjs/bidiMapper/domains/events/EventManager.js +23 -4
- package/lib/cjs/bidiMapper/domains/events/EventManager.js.map +1 -1
- package/lib/cjs/bidiMapper/domains/events/SubscriptionManager.d.ts +6 -6
- package/lib/cjs/bidiMapper/domains/events/SubscriptionManager.js +36 -26
- package/lib/cjs/bidiMapper/domains/events/SubscriptionManager.js.map +1 -1
- package/lib/cjs/bidiMapper/domains/input/ActionDispatcher.js +79 -71
- package/lib/cjs/bidiMapper/domains/input/ActionDispatcher.js.map +1 -1
- package/lib/cjs/bidiMapper/domains/input/InputProcessor.d.ts +10 -0
- package/lib/cjs/bidiMapper/domains/input/InputProcessor.js +80 -0
- package/lib/cjs/bidiMapper/domains/input/InputProcessor.js.map +1 -0
- package/lib/cjs/bidiMapper/domains/input/InputSource.d.ts +11 -6
- package/lib/cjs/bidiMapper/domains/input/InputSource.js +5 -7
- package/lib/cjs/bidiMapper/domains/input/InputSource.js.map +1 -1
- package/lib/cjs/bidiMapper/domains/input/InputState.d.ts +1 -1
- package/lib/cjs/bidiMapper/domains/input/InputState.js +10 -10
- package/lib/cjs/bidiMapper/domains/input/InputState.js.map +1 -1
- package/lib/cjs/bidiMapper/domains/input/InputStateManager.d.ts +1 -3
- package/lib/cjs/bidiMapper/domains/input/InputStateManager.js +6 -12
- package/lib/cjs/bidiMapper/domains/input/InputStateManager.js.map +1 -1
- package/lib/cjs/bidiMapper/domains/log/logHelper.d.ts +3 -3
- package/lib/cjs/bidiMapper/domains/log/logHelper.js +7 -8
- package/lib/cjs/bidiMapper/domains/log/logHelper.js.map +1 -1
- package/lib/cjs/bidiMapper/domains/log/logManager.js +18 -16
- package/lib/cjs/bidiMapper/domains/log/logManager.js.map +1 -1
- package/lib/cjs/bidiMapper/domains/network/networkProcessor.d.ts +1 -0
- package/lib/cjs/bidiMapper/domains/network/networkProcessor.js +28 -4
- package/lib/cjs/bidiMapper/domains/network/networkProcessor.js.map +1 -1
- package/lib/cjs/bidiMapper/domains/network/networkRequest.d.ts +3 -2
- package/lib/cjs/bidiMapper/domains/network/networkRequest.js +24 -10
- package/lib/cjs/bidiMapper/domains/network/networkRequest.js.map +1 -1
- package/lib/cjs/bidiMapper/domains/{context → script}/PreloadScriptStorage.d.ts +3 -9
- package/lib/cjs/bidiMapper/domains/{context → script}/PreloadScriptStorage.js +0 -8
- package/lib/cjs/bidiMapper/domains/script/PreloadScriptStorage.js.map +1 -0
- package/lib/cjs/bidiMapper/domains/script/ScriptProcessor.d.ts +30 -0
- package/lib/cjs/bidiMapper/domains/script/ScriptProcessor.js +97 -0
- package/lib/cjs/bidiMapper/domains/script/ScriptProcessor.js.map +1 -0
- package/lib/cjs/bidiMapper/domains/{context → script}/bidiPreloadScript.d.ts +9 -17
- package/lib/cjs/bidiMapper/domains/{context → script}/bidiPreloadScript.js +18 -34
- package/lib/cjs/bidiMapper/domains/script/bidiPreloadScript.js.map +1 -0
- package/lib/cjs/bidiMapper/domains/script/channelProxy.d.ts +2 -3
- package/lib/cjs/bidiMapper/domains/script/channelProxy.js +7 -6
- package/lib/cjs/bidiMapper/domains/script/channelProxy.js.map +1 -1
- package/lib/cjs/bidiMapper/domains/script/realm.d.ts +14 -22
- package/lib/cjs/bidiMapper/domains/script/realm.js +401 -98
- package/lib/cjs/bidiMapper/domains/script/realm.js.map +1 -1
- package/lib/cjs/bidiMapper/domains/script/realmStorage.d.ts +5 -5
- package/lib/cjs/bidiMapper/domains/script/realmStorage.js +8 -8
- package/lib/cjs/bidiMapper/domains/script/realmStorage.js.map +1 -1
- package/lib/cjs/bidiMapper/tsconfig.tsbuildinfo +1 -1
- package/lib/cjs/bidiServer/bidiServerRunner.js +2 -1
- package/lib/cjs/bidiServer/bidiServerRunner.js.map +1 -1
- package/lib/cjs/bidiServer/index.js +16 -15
- package/lib/cjs/bidiServer/index.js.map +1 -1
- package/lib/cjs/bidiServer/tsconfig.tsbuildinfo +1 -1
- package/lib/cjs/bidiTab/BidiParserImpl.d.ts +41 -0
- package/lib/cjs/bidiTab/BidiParserImpl.js +108 -0
- package/lib/cjs/bidiTab/BidiParserImpl.js.map +1 -0
- package/lib/cjs/bidiTab/bidiTab.js +4 -86
- package/lib/cjs/bidiTab/bidiTab.js.map +1 -1
- package/lib/cjs/bidiTab/tsconfig.tsbuildinfo +1 -1
- package/lib/cjs/cdp/cdpClient.d.ts +10 -0
- package/lib/cjs/cdp/cdpClient.js +6 -0
- package/lib/cjs/cdp/cdpClient.js.map +1 -1
- package/lib/cjs/cdp/cdpConnection.js +11 -8
- package/lib/cjs/cdp/cdpConnection.js.map +1 -1
- package/lib/cjs/cdp/tsconfig.tsbuildinfo +1 -1
- package/lib/cjs/protocol/ErrorResponse.d.ts +64 -0
- package/lib/cjs/protocol/ErrorResponse.js +118 -0
- package/lib/cjs/protocol/ErrorResponse.js.map +1 -0
- package/lib/cjs/protocol/cdp.d.ts +66 -0
- package/lib/cjs/protocol/cdp.js +19 -0
- package/lib/cjs/protocol/cdp.js.map +1 -0
- package/lib/cjs/protocol/chromium-bidi.d.ts +64 -0
- package/lib/cjs/protocol/chromium-bidi.js +71 -0
- package/lib/cjs/protocol/chromium-bidi.js.map +1 -0
- package/lib/cjs/protocol/protocol.d.ts +5 -947
- package/lib/cjs/protocol/protocol.js +32 -198
- package/lib/cjs/protocol/protocol.js.map +1 -1
- package/lib/cjs/protocol/tsconfig.tsbuildinfo +1 -1
- package/lib/cjs/protocol/webdriver-bidi.d.ts +1497 -0
- package/lib/cjs/protocol/webdriver-bidi.js +19 -0
- package/lib/cjs/protocol/webdriver-bidi.js.map +1 -0
- package/lib/cjs/protocol-parser/protocol-parser.d.ts +29 -217
- package/lib/cjs/protocol-parser/protocol-parser.js +76 -700
- package/lib/cjs/protocol-parser/protocol-parser.js.map +1 -1
- package/lib/cjs/protocol-parser/tsconfig.tsbuildinfo +1 -1
- package/lib/cjs/protocol-parser/webdriver-bidi.d.ts +48774 -0
- package/lib/cjs/protocol-parser/webdriver-bidi.js +1631 -0
- package/lib/cjs/protocol-parser/webdriver-bidi.js.map +1 -0
- package/lib/cjs/utils/EventEmitter.d.ts +7 -0
- package/lib/cjs/utils/EventEmitter.js +15 -0
- package/lib/cjs/utils/EventEmitter.js.map +1 -1
- package/lib/cjs/utils/buffer.d.ts +3 -5
- package/lib/cjs/utils/buffer.js +3 -5
- package/lib/cjs/utils/buffer.js.map +1 -1
- package/lib/cjs/utils/deferred.d.ts +1 -1
- package/lib/cjs/utils/deferred.js.map +1 -1
- package/lib/cjs/utils/idWrapper.js.map +1 -1
- package/lib/cjs/utils/log.js +1 -1
- package/lib/cjs/utils/log.js.map +1 -1
- package/lib/cjs/utils/tsconfig.tsbuildinfo +1 -1
- package/lib/iife/mapperTab.js +2 -2
- package/lib/iife/mapperTab.js.map +1 -1
- package/package.json +39 -43
- package/lib/cjs/bidiMapper/domains/context/PreloadScriptStorage.js.map +0 -1
- package/lib/cjs/bidiMapper/domains/context/bidiPreloadScript.js.map +0 -1
- package/lib/cjs/bidiMapper/domains/script/scriptEvaluator.d.ts +0 -43
- package/lib/cjs/bidiMapper/domains/script/scriptEvaluator.js +0 -355
- package/lib/cjs/bidiMapper/domains/script/scriptEvaluator.js.map +0 -1
package/.browser
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
chrome@
|
|
1
|
+
chrome@117.0.5900.2
|
package/README.md
CHANGED
|
@@ -8,6 +8,8 @@
|
|
|
8
8
|
|
|
9
9
|

|
|
10
10
|
|
|
11
|
+
[](https://codecov.io/gh/GoogleChromeLabs/chromium-bidi)
|
|
12
|
+
|
|
11
13
|
This is an implementation of the
|
|
12
14
|
[WebDriver BiDi](https://w3c.github.io/webdriver-bidi/) protocol with some
|
|
13
15
|
extensions (**BiDi+**)
|
|
@@ -138,6 +140,15 @@ This is a Node.js project, so install dependencies as usual:
|
|
|
138
140
|
npm install
|
|
139
141
|
```
|
|
140
142
|
|
|
143
|
+
### `cargo`
|
|
144
|
+
|
|
145
|
+
<!-- TODO(jrandolf): Remove after binaries get published -->
|
|
146
|
+
|
|
147
|
+
We use [cddlconv](https://github.com/jrandolf/cddlconv) to generate our WebDriverBidi types before building.
|
|
148
|
+
|
|
149
|
+
1. Install [Rust](https://rustup.rs/).
|
|
150
|
+
2. Run `cargo install --git https://github.com/jrandolf/cddlconv.git cddlconv`
|
|
151
|
+
|
|
141
152
|
### pre-commit.com integration
|
|
142
153
|
|
|
143
154
|
Refer to the documentation at [.pre-commit-config.yaml](.pre-commit-config.yaml).
|
|
@@ -196,11 +207,11 @@ DEBUG=* npm run server -- --verbose
|
|
|
196
207
|
|
|
197
208
|
TODO: verify it works on Windows.
|
|
198
209
|
|
|
199
|
-
You can also run the server by using
|
|
210
|
+
You can also run the server by using `npm run server`. It will write
|
|
200
211
|
output to the file `log.txt`:
|
|
201
212
|
|
|
202
213
|
```sh
|
|
203
|
-
|
|
214
|
+
npm run server -- --port=8081 --headless=false
|
|
204
215
|
```
|
|
205
216
|
|
|
206
217
|
## Running
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2023 Google LLC.
|
|
3
|
+
* Copyright (c) Microsoft Corporation.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
import type { BrowsingContext, Cdp, Input, Script, Session } from '../protocol/protocol.js';
|
|
18
|
+
import type { IBidiParser } from './BidiParser.js';
|
|
19
|
+
export declare class BidiNoOpParser implements IBidiParser {
|
|
20
|
+
parseActivateParams(params: unknown): BrowsingContext.ActivateParameters;
|
|
21
|
+
parseCaptureScreenshotParams(params: unknown): BrowsingContext.CaptureScreenshotParameters;
|
|
22
|
+
parseCloseParams(params: unknown): BrowsingContext.CloseParameters;
|
|
23
|
+
parseCreateParams(params: unknown): BrowsingContext.CreateParameters;
|
|
24
|
+
parseGetTreeParams(params: unknown): BrowsingContext.GetTreeParameters;
|
|
25
|
+
parseHandleUserPromptParams(params: unknown): BrowsingContext.HandleUserPromptParameters;
|
|
26
|
+
parseNavigateParams(params: unknown): BrowsingContext.NavigateParameters;
|
|
27
|
+
parsePrintParams(params: unknown): BrowsingContext.PrintParameters;
|
|
28
|
+
parseReloadParams(params: unknown): BrowsingContext.ReloadParameters;
|
|
29
|
+
parseSetViewportParams(params: unknown): BrowsingContext.SetViewportParameters;
|
|
30
|
+
parseGetSessionParams(params: unknown): Cdp.GetSessionParameters;
|
|
31
|
+
parseSendCommandParams(params: unknown): Cdp.SendCommandParameters;
|
|
32
|
+
parseAddPreloadScriptParams(params: unknown): Script.AddPreloadScriptParameters;
|
|
33
|
+
parseCallFunctionParams(params: unknown): Script.CallFunctionParameters;
|
|
34
|
+
parseDisownParams(params: unknown): Script.DisownParameters;
|
|
35
|
+
parseEvaluateParams(params: unknown): Script.EvaluateParameters;
|
|
36
|
+
parseGetRealmsParams(params: unknown): Script.GetRealmsParameters;
|
|
37
|
+
parseRemovePreloadScriptParams(params: unknown): Script.RemovePreloadScriptParameters;
|
|
38
|
+
parsePerformActionsParams(params: unknown): Input.PerformActionsParameters;
|
|
39
|
+
parseReleaseActionsParams(params: unknown): Input.ReleaseActionsParameters;
|
|
40
|
+
parseSubscribeParams(params: unknown): Session.SubscriptionRequest;
|
|
41
|
+
}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright 2023 Google LLC.
|
|
4
|
+
* Copyright (c) Microsoft Corporation.
|
|
5
|
+
*
|
|
6
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
+
* you may not use this file except in compliance with the License.
|
|
8
|
+
* You may obtain a copy of the License at
|
|
9
|
+
*
|
|
10
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
*
|
|
12
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
* See the License for the specific language governing permissions and
|
|
16
|
+
* limitations under the License.
|
|
17
|
+
*/
|
|
18
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
+
exports.BidiNoOpParser = void 0;
|
|
20
|
+
class BidiNoOpParser {
|
|
21
|
+
// Browsing Context domain
|
|
22
|
+
// keep-sorted start block=yes
|
|
23
|
+
parseActivateParams(params) {
|
|
24
|
+
return params;
|
|
25
|
+
}
|
|
26
|
+
parseCaptureScreenshotParams(params) {
|
|
27
|
+
return params;
|
|
28
|
+
}
|
|
29
|
+
parseCloseParams(params) {
|
|
30
|
+
return params;
|
|
31
|
+
}
|
|
32
|
+
parseCreateParams(params) {
|
|
33
|
+
return params;
|
|
34
|
+
}
|
|
35
|
+
parseGetTreeParams(params) {
|
|
36
|
+
return params;
|
|
37
|
+
}
|
|
38
|
+
parseHandleUserPromptParams(params) {
|
|
39
|
+
return params;
|
|
40
|
+
}
|
|
41
|
+
parseNavigateParams(params) {
|
|
42
|
+
return params;
|
|
43
|
+
}
|
|
44
|
+
parsePrintParams(params) {
|
|
45
|
+
return params;
|
|
46
|
+
}
|
|
47
|
+
parseReloadParams(params) {
|
|
48
|
+
return params;
|
|
49
|
+
}
|
|
50
|
+
parseSetViewportParams(params) {
|
|
51
|
+
return params;
|
|
52
|
+
}
|
|
53
|
+
// keep-sorted end
|
|
54
|
+
// CDP domain
|
|
55
|
+
// keep-sorted start block=yes
|
|
56
|
+
parseGetSessionParams(params) {
|
|
57
|
+
return params;
|
|
58
|
+
}
|
|
59
|
+
parseSendCommandParams(params) {
|
|
60
|
+
return params;
|
|
61
|
+
}
|
|
62
|
+
// keep-sorted end
|
|
63
|
+
// Script domain
|
|
64
|
+
// keep-sorted start block=yes
|
|
65
|
+
parseAddPreloadScriptParams(params) {
|
|
66
|
+
return params;
|
|
67
|
+
}
|
|
68
|
+
parseCallFunctionParams(params) {
|
|
69
|
+
return params;
|
|
70
|
+
}
|
|
71
|
+
parseDisownParams(params) {
|
|
72
|
+
return params;
|
|
73
|
+
}
|
|
74
|
+
parseEvaluateParams(params) {
|
|
75
|
+
return params;
|
|
76
|
+
}
|
|
77
|
+
parseGetRealmsParams(params) {
|
|
78
|
+
return params;
|
|
79
|
+
}
|
|
80
|
+
parseRemovePreloadScriptParams(params) {
|
|
81
|
+
return params;
|
|
82
|
+
}
|
|
83
|
+
// keep-sorted end
|
|
84
|
+
// Input domain
|
|
85
|
+
// keep-sorted start block=yes
|
|
86
|
+
parsePerformActionsParams(params) {
|
|
87
|
+
return params;
|
|
88
|
+
}
|
|
89
|
+
parseReleaseActionsParams(params) {
|
|
90
|
+
return params;
|
|
91
|
+
}
|
|
92
|
+
// keep-sorted end
|
|
93
|
+
// Session domain
|
|
94
|
+
// keep-sorted start block=yes
|
|
95
|
+
parseSubscribeParams(params) {
|
|
96
|
+
return params;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
exports.BidiNoOpParser = BidiNoOpParser;
|
|
100
|
+
//# sourceMappingURL=BidiNoOpParser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BidiNoOpParser.js","sourceRoot":"","sources":["../../../src/bidiMapper/BidiNoOpParser.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;AAYH,MAAa,cAAc;IACzB,0BAA0B;IAC1B,8BAA8B;IAC9B,mBAAmB,CAAC,MAAe;QACjC,OAAO,MAA4C,CAAC;IACtD,CAAC;IACD,4BAA4B,CAC1B,MAAe;QAEf,OAAO,MAAqD,CAAC;IAC/D,CAAC;IACD,gBAAgB,CAAC,MAAe;QAC9B,OAAO,MAAyC,CAAC;IACnD,CAAC;IACD,iBAAiB,CAAC,MAAe;QAC/B,OAAO,MAA0C,CAAC;IACpD,CAAC;IACD,kBAAkB,CAAC,MAAe;QAChC,OAAO,MAA2C,CAAC;IACrD,CAAC;IACD,2BAA2B,CACzB,MAAe;QAEf,OAAO,MAAoD,CAAC;IAC9D,CAAC;IACD,mBAAmB,CAAC,MAAe;QACjC,OAAO,MAA4C,CAAC;IACtD,CAAC;IACD,gBAAgB,CAAC,MAAe;QAC9B,OAAO,MAAyC,CAAC;IACnD,CAAC;IACD,iBAAiB,CAAC,MAAe;QAC/B,OAAO,MAA0C,CAAC;IACpD,CAAC;IACD,sBAAsB,CACpB,MAAe;QAEf,OAAO,MAA+C,CAAC;IACzD,CAAC;IACD,kBAAkB;IAElB,aAAa;IACb,8BAA8B;IAC9B,qBAAqB,CAAC,MAAe;QACnC,OAAO,MAAkC,CAAC;IAC5C,CAAC;IACD,sBAAsB,CAAC,MAAe;QACpC,OAAO,MAAmC,CAAC;IAC7C,CAAC;IACD,kBAAkB;IAElB,gBAAgB;IAChB,8BAA8B;IAC9B,2BAA2B,CACzB,MAAe;QAEf,OAAO,MAA2C,CAAC;IACrD,CAAC;IACD,uBAAuB,CAAC,MAAe;QACrC,OAAO,MAAuC,CAAC;IACjD,CAAC;IACD,iBAAiB,CAAC,MAAe;QAC/B,OAAO,MAAiC,CAAC;IAC3C,CAAC;IACD,mBAAmB,CAAC,MAAe;QACjC,OAAO,MAAmC,CAAC;IAC7C,CAAC;IACD,oBAAoB,CAAC,MAAe;QAClC,OAAO,MAAoC,CAAC;IAC9C,CAAC;IACD,8BAA8B,CAC5B,MAAe;QAEf,OAAO,MAA8C,CAAC;IACxD,CAAC;IACD,kBAAkB;IAElB,eAAe;IACf,8BAA8B;IAC9B,yBAAyB,CAAC,MAAe;QACvC,OAAO,MAAwC,CAAC;IAClD,CAAC;IACD,yBAAyB,CAAC,MAAe;QACvC,OAAO,MAAwC,CAAC;IAClD,CAAC;IACD,kBAAkB;IAElB,iBAAiB;IACjB,8BAA8B;IAC9B,oBAAoB,CAAC,MAAe;QAClC,OAAO,MAAqC,CAAC;IAC/C,CAAC;CAEF;AA7FD,wCA6FC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright 2023 Google LLC.
|
|
3
|
+
* Copyright (c) Microsoft Corporation.
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this file except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*/
|
|
17
|
+
import type { BrowsingContext, Cdp, Input, Script, Session } from '../protocol/protocol.js';
|
|
18
|
+
export interface IBidiParser {
|
|
19
|
+
parseActivateParams(params: unknown): BrowsingContext.ActivateParameters;
|
|
20
|
+
parseCaptureScreenshotParams(params: unknown): BrowsingContext.CaptureScreenshotParameters;
|
|
21
|
+
parseCloseParams(params: unknown): BrowsingContext.CloseParameters;
|
|
22
|
+
parseCreateParams(params: unknown): BrowsingContext.CreateParameters;
|
|
23
|
+
parseGetTreeParams(params: unknown): BrowsingContext.GetTreeParameters;
|
|
24
|
+
parseHandleUserPromptParams(params: unknown): BrowsingContext.HandleUserPromptParameters;
|
|
25
|
+
parseNavigateParams(params: unknown): BrowsingContext.NavigateParameters;
|
|
26
|
+
parsePrintParams(params: unknown): BrowsingContext.PrintParameters;
|
|
27
|
+
parseReloadParams(params: unknown): BrowsingContext.ReloadParameters;
|
|
28
|
+
parseSetViewportParams(params: unknown): BrowsingContext.SetViewportParameters;
|
|
29
|
+
parseGetSessionParams(params: unknown): Cdp.GetSessionParameters;
|
|
30
|
+
parseSendCommandParams(params: unknown): Cdp.SendCommandParameters;
|
|
31
|
+
parsePerformActionsParams(params: unknown): Input.PerformActionsParameters;
|
|
32
|
+
parseReleaseActionsParams(params: unknown): Input.ReleaseActionsParameters;
|
|
33
|
+
parseAddPreloadScriptParams(params: unknown): Script.AddPreloadScriptParameters;
|
|
34
|
+
parseCallFunctionParams(params: unknown): Script.CallFunctionParameters;
|
|
35
|
+
parseDisownParams(params: unknown): Script.DisownParameters;
|
|
36
|
+
parseEvaluateParams(params: unknown): Script.EvaluateParameters;
|
|
37
|
+
parseGetRealmsParams(params: unknown): Script.GetRealmsParameters;
|
|
38
|
+
parseRemovePreloadScriptParams(params: unknown): Script.RemovePreloadScriptParameters;
|
|
39
|
+
parseSubscribeParams(params: unknown): Session.SubscriptionRequest;
|
|
40
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Copyright 2023 Google LLC.
|
|
4
|
+
* Copyright (c) Microsoft Corporation.
|
|
5
|
+
*
|
|
6
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
7
|
+
* you may not use this file except in compliance with the License.
|
|
8
|
+
* You may obtain a copy of the License at
|
|
9
|
+
*
|
|
10
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
11
|
+
*
|
|
12
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
13
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
14
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
15
|
+
* See the License for the specific language governing permissions and
|
|
16
|
+
* limitations under the License.
|
|
17
|
+
*/
|
|
18
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
+
//# sourceMappingURL=BidiParser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BidiParser.js","sourceRoot":"","sources":["../../../src/bidiMapper/BidiParser.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG"}
|
|
@@ -14,21 +14,21 @@
|
|
|
14
14
|
* See the License for the specific language governing permissions and
|
|
15
15
|
* limitations under the License.
|
|
16
16
|
*/
|
|
17
|
+
import type { ICdpConnection } from '../cdp/cdpConnection.js';
|
|
18
|
+
import type { ChromiumBidi } from '../protocol/protocol.js';
|
|
17
19
|
import { EventEmitter } from '../utils/EventEmitter.js';
|
|
18
20
|
import { type LoggerFn } from '../utils/log.js';
|
|
19
|
-
import type {
|
|
20
|
-
import type {
|
|
21
|
-
import { type BidiParser } from './CommandProcessor.js';
|
|
22
|
-
import type { BidiTransport } from './BidiTransport.js';
|
|
23
|
-
import { BrowsingContextStorage } from './domains/context/browsingContextStorage.js';
|
|
21
|
+
import type { IBidiParser } from './BidiParser.js';
|
|
22
|
+
import type { IBidiTransport } from './BidiTransport.js';
|
|
24
23
|
import type { OutgoingBidiMessage } from './OutgoingBidiMessage.js';
|
|
25
|
-
|
|
26
|
-
|
|
24
|
+
import { BrowsingContextStorage } from './domains/context/browsingContextStorage.js';
|
|
25
|
+
type BidiServerEvent = {
|
|
26
|
+
message: ChromiumBidi.Command;
|
|
27
27
|
};
|
|
28
|
-
export declare class BidiServer extends EventEmitter<
|
|
28
|
+
export declare class BidiServer extends EventEmitter<BidiServerEvent> {
|
|
29
29
|
#private;
|
|
30
30
|
private constructor();
|
|
31
|
-
static createAndStart(bidiTransport:
|
|
31
|
+
static createAndStart(bidiTransport: IBidiTransport, cdpConnection: ICdpConnection, selfTargetId: string, parser?: IBidiParser, logger?: LoggerFn): Promise<BidiServer>;
|
|
32
32
|
topLevelContextsLoaded(): Promise<void>;
|
|
33
33
|
/**
|
|
34
34
|
* Sends BiDi message.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BidiServer.js","sourceRoot":"","sources":["../../../src/bidiMapper/BidiServer.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;
|
|
1
|
+
{"version":3,"file":"BidiServer.js","sourceRoot":"","sources":["../../../src/bidiMapper/BidiServer.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,9 +14,9 @@
|
|
|
14
14
|
* See the License for the specific language governing permissions and
|
|
15
15
|
* limitations under the License.
|
|
16
16
|
*/
|
|
17
|
-
import type {
|
|
18
|
-
export interface
|
|
19
|
-
setOnMessage: (handler: (message:
|
|
20
|
-
sendMessage: (message: Message
|
|
17
|
+
import type { ChromiumBidi } from '../protocol/protocol.js';
|
|
18
|
+
export interface IBidiTransport {
|
|
19
|
+
setOnMessage: (handler: (message: ChromiumBidi.Command) => Promise<void> | void) => void;
|
|
20
|
+
sendMessage: (message: ChromiumBidi.Message) => Promise<void> | void;
|
|
21
21
|
close(): void;
|
|
22
22
|
}
|
|
@@ -14,41 +14,21 @@
|
|
|
14
14
|
* See the License for the specific language governing permissions and
|
|
15
15
|
* limitations under the License.
|
|
16
16
|
*/
|
|
17
|
-
import { type BrowsingContext, type Cdp, type Input, Message, type Script, type Session } from '../protocol/protocol.js';
|
|
18
|
-
import { type LoggerFn } from '../utils/log.js';
|
|
19
|
-
import { EventEmitter } from '../utils/EventEmitter.js';
|
|
20
17
|
import type { ICdpConnection } from '../cdp/cdpConnection.js';
|
|
18
|
+
import { type ChromiumBidi } from '../protocol/protocol.js';
|
|
19
|
+
import { EventEmitter } from '../utils/EventEmitter.js';
|
|
20
|
+
import { type LoggerFn } from '../utils/log.js';
|
|
21
|
+
import type { IBidiParser } from './BidiParser.js';
|
|
22
|
+
import { OutgoingBidiMessage } from './OutgoingBidiMessage.js';
|
|
21
23
|
import type { BrowsingContextStorage } from './domains/context/browsingContextStorage.js';
|
|
22
24
|
import type { IEventManager } from './domains/events/EventManager.js';
|
|
23
|
-
import { OutgoingBidiMessage } from './OutgoingBidiMessage.js';
|
|
24
25
|
import type { RealmStorage } from './domains/script/realmStorage.js';
|
|
25
26
|
type CommandProcessorEvents = {
|
|
26
27
|
response: Promise<OutgoingBidiMessage>;
|
|
27
28
|
};
|
|
28
|
-
export interface BidiParser {
|
|
29
|
-
parseAddPreloadScriptParams(params: object): Script.AddPreloadScriptParameters;
|
|
30
|
-
parseRemovePreloadScriptParams(params: object): Script.RemovePreloadScriptParameters;
|
|
31
|
-
parseGetRealmsParams(params: object): Script.GetRealmsParameters;
|
|
32
|
-
parseCallFunctionParams(params: object): Script.CallFunctionParameters;
|
|
33
|
-
parseEvaluateParams(params: object): Script.EvaluateParameters;
|
|
34
|
-
parseDisownParams(params: object): Script.DisownParameters;
|
|
35
|
-
parseSendCommandParams(params: object): Cdp.SendCommandParams;
|
|
36
|
-
parseGetSessionParams(params: object): Cdp.GetSessionParams;
|
|
37
|
-
parseSubscribeParams(params: object): Session.SubscriptionRequest;
|
|
38
|
-
parseNavigateParams(params: object): BrowsingContext.NavigateParameters;
|
|
39
|
-
parseReloadParams(params: object): BrowsingContext.ReloadParameters;
|
|
40
|
-
parseGetTreeParams(params: object): BrowsingContext.GetTreeParameters;
|
|
41
|
-
parseCreateParams(params: object): BrowsingContext.CreateParameters;
|
|
42
|
-
parseCloseParams(params: object): BrowsingContext.CloseParameters;
|
|
43
|
-
parseCaptureScreenshotParams(params: object): BrowsingContext.CaptureScreenshotParameters;
|
|
44
|
-
parsePrintParams(params: object): BrowsingContext.PrintParameters;
|
|
45
|
-
parseSetViewportParams(params: object): BrowsingContext.SetViewportParameters;
|
|
46
|
-
parsePerformActionsParams(params: object): Input.PerformActionsParameters;
|
|
47
|
-
parseReleaseActionsParams(params: object): Input.ReleaseActionsParameters;
|
|
48
|
-
}
|
|
49
29
|
export declare class CommandProcessor extends EventEmitter<CommandProcessorEvents> {
|
|
50
30
|
#private;
|
|
51
|
-
constructor(cdpConnection: ICdpConnection, eventManager: IEventManager, selfTargetId: string, parser:
|
|
52
|
-
processCommand(command:
|
|
31
|
+
constructor(cdpConnection: ICdpConnection, eventManager: IEventManager, selfTargetId: string, parser: IBidiParser | undefined, browsingContextStorage: BrowsingContextStorage, realmStorage: RealmStorage, logger?: LoggerFn);
|
|
32
|
+
processCommand(command: ChromiumBidi.Command): Promise<void>;
|
|
53
33
|
}
|
|
54
34
|
export {};
|
|
@@ -18,160 +18,135 @@
|
|
|
18
18
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
19
|
exports.CommandProcessor = void 0;
|
|
20
20
|
const protocol_js_1 = require("../protocol/protocol.js");
|
|
21
|
-
const log_js_1 = require("../utils/log.js");
|
|
22
21
|
const EventEmitter_js_1 = require("../utils/EventEmitter.js");
|
|
23
|
-
const
|
|
22
|
+
const log_js_1 = require("../utils/log.js");
|
|
23
|
+
const BidiNoOpParser_js_1 = require("./BidiNoOpParser.js");
|
|
24
24
|
const OutgoingBidiMessage_js_1 = require("./OutgoingBidiMessage.js");
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
parseRemovePreloadScriptParams(params) {
|
|
30
|
-
return params;
|
|
31
|
-
}
|
|
32
|
-
parseGetRealmsParams(params) {
|
|
33
|
-
return params;
|
|
34
|
-
}
|
|
35
|
-
parseCallFunctionParams(params) {
|
|
36
|
-
return params;
|
|
37
|
-
}
|
|
38
|
-
parseEvaluateParams(params) {
|
|
39
|
-
return params;
|
|
40
|
-
}
|
|
41
|
-
parseDisownParams(params) {
|
|
42
|
-
return params;
|
|
43
|
-
}
|
|
44
|
-
parseSendCommandParams(params) {
|
|
45
|
-
return params;
|
|
46
|
-
}
|
|
47
|
-
parseGetSessionParams(params) {
|
|
48
|
-
return params;
|
|
49
|
-
}
|
|
50
|
-
parseSubscribeParams(params) {
|
|
51
|
-
return params;
|
|
52
|
-
}
|
|
53
|
-
parseNavigateParams(params) {
|
|
54
|
-
return params;
|
|
55
|
-
}
|
|
56
|
-
parseReloadParams(params) {
|
|
57
|
-
return params;
|
|
58
|
-
}
|
|
59
|
-
parseGetTreeParams(params) {
|
|
60
|
-
return params;
|
|
61
|
-
}
|
|
62
|
-
parseCreateParams(params) {
|
|
63
|
-
return params;
|
|
64
|
-
}
|
|
65
|
-
parseCloseParams(params) {
|
|
66
|
-
return params;
|
|
67
|
-
}
|
|
68
|
-
parseCaptureScreenshotParams(params) {
|
|
69
|
-
return params;
|
|
70
|
-
}
|
|
71
|
-
parsePrintParams(params) {
|
|
72
|
-
return params;
|
|
73
|
-
}
|
|
74
|
-
parsePerformActionsParams(params) {
|
|
75
|
-
return params;
|
|
76
|
-
}
|
|
77
|
-
parseReleaseActionsParams(params) {
|
|
78
|
-
return params;
|
|
79
|
-
}
|
|
80
|
-
parseSetViewportParams(params) {
|
|
81
|
-
return params;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
25
|
+
const browsingContextProcessor_js_1 = require("./domains/context/browsingContextProcessor.js");
|
|
26
|
+
const InputProcessor_js_1 = require("./domains/input/InputProcessor.js");
|
|
27
|
+
const PreloadScriptStorage_js_1 = require("./domains/script/PreloadScriptStorage.js");
|
|
28
|
+
const ScriptProcessor_js_1 = require("./domains/script/ScriptProcessor.js");
|
|
84
29
|
class CommandProcessor extends EventEmitter_js_1.EventEmitter {
|
|
85
|
-
#
|
|
30
|
+
#browsingContextProcessor;
|
|
31
|
+
#inputProcessor;
|
|
32
|
+
#scriptProcessor;
|
|
86
33
|
#eventManager;
|
|
87
34
|
#parser;
|
|
88
35
|
#logger;
|
|
89
|
-
constructor(cdpConnection, eventManager, selfTargetId, parser = new BidiNoOpParser(), browsingContextStorage, realmStorage, logger) {
|
|
36
|
+
constructor(cdpConnection, eventManager, selfTargetId, parser = new BidiNoOpParser_js_1.BidiNoOpParser(), browsingContextStorage, realmStorage, logger) {
|
|
90
37
|
super();
|
|
91
38
|
this.#eventManager = eventManager;
|
|
92
|
-
this.#logger = logger;
|
|
93
|
-
this.#contextProcessor = new browsingContextProcessor_js_1.BrowsingContextProcessor(cdpConnection, selfTargetId, eventManager, browsingContextStorage, realmStorage, logger);
|
|
94
39
|
this.#parser = parser;
|
|
40
|
+
this.#logger = logger;
|
|
41
|
+
const preloadScriptStorage = new PreloadScriptStorage_js_1.PreloadScriptStorage();
|
|
42
|
+
this.#browsingContextProcessor = new browsingContextProcessor_js_1.BrowsingContextProcessor(cdpConnection, selfTargetId, eventManager, browsingContextStorage, realmStorage, preloadScriptStorage, logger);
|
|
43
|
+
this.#inputProcessor = InputProcessor_js_1.InputProcessor.create(browsingContextStorage);
|
|
44
|
+
this.#scriptProcessor = new ScriptProcessor_js_1.ScriptProcessor(browsingContextStorage, realmStorage, preloadScriptStorage);
|
|
95
45
|
}
|
|
96
46
|
static #process_session_status() {
|
|
97
|
-
return {
|
|
47
|
+
return { ready: false, message: 'already connected' };
|
|
98
48
|
}
|
|
99
49
|
async #process_session_subscribe(params, channel) {
|
|
100
50
|
await this.#eventManager.subscribe(params.events, params.contexts ?? [null], channel);
|
|
101
|
-
return {
|
|
51
|
+
return {};
|
|
102
52
|
}
|
|
103
53
|
async #process_session_unsubscribe(params, channel) {
|
|
104
54
|
await this.#eventManager.unsubscribe(params.events, params.contexts ?? [null], channel);
|
|
105
|
-
return {
|
|
106
|
-
}
|
|
107
|
-
async #processCommand(
|
|
108
|
-
switch (
|
|
109
|
-
case '
|
|
110
|
-
|
|
111
|
-
case 'session.
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
55
|
+
return {};
|
|
56
|
+
}
|
|
57
|
+
async #processCommand(command) {
|
|
58
|
+
switch (command.method) {
|
|
59
|
+
case 'browser.close':
|
|
60
|
+
case 'session.end':
|
|
61
|
+
case 'session.new':
|
|
62
|
+
// TODO: Implement.
|
|
63
|
+
break;
|
|
64
|
+
// Browsing Context domain
|
|
65
|
+
// keep-sorted start block=yes
|
|
66
|
+
case 'browsingContext.activate':
|
|
67
|
+
return this.#browsingContextProcessor.process_browsingContext_activate(this.#parser.parseActivateParams(command.params));
|
|
68
|
+
case 'browsingContext.captureScreenshot':
|
|
69
|
+
return this.#browsingContextProcessor.process_browsingContext_captureScreenshot(this.#parser.parseCaptureScreenshotParams(command.params));
|
|
117
70
|
case 'browsingContext.close':
|
|
118
|
-
return this.#
|
|
71
|
+
return this.#browsingContextProcessor.process_browsingContext_close(this.#parser.parseCloseParams(command.params));
|
|
72
|
+
case 'browsingContext.create':
|
|
73
|
+
return this.#browsingContextProcessor.process_browsingContext_create(this.#parser.parseCreateParams(command.params));
|
|
119
74
|
case 'browsingContext.getTree':
|
|
120
|
-
return this.#
|
|
75
|
+
return this.#browsingContextProcessor.process_browsingContext_getTree(this.#parser.parseGetTreeParams(command.params));
|
|
76
|
+
case 'browsingContext.handleUserPrompt':
|
|
77
|
+
return this.#browsingContextProcessor.process_browsingContext_handleUserPrompt(this.#parser.parseHandleUserPromptParams(command.params));
|
|
121
78
|
case 'browsingContext.navigate':
|
|
122
|
-
return this.#
|
|
123
|
-
case 'browsingContext.captureScreenshot':
|
|
124
|
-
return this.#contextProcessor.process_browsingContext_captureScreenshot(this.#parser.parseCaptureScreenshotParams(commandData.params));
|
|
79
|
+
return this.#browsingContextProcessor.process_browsingContext_navigate(this.#parser.parseNavigateParams(command.params));
|
|
125
80
|
case 'browsingContext.print':
|
|
126
|
-
return this.#
|
|
81
|
+
return this.#browsingContextProcessor.process_browsingContext_print(this.#parser.parsePrintParams(command.params));
|
|
127
82
|
case 'browsingContext.reload':
|
|
128
|
-
return this.#
|
|
83
|
+
return this.#browsingContextProcessor.process_browsingContext_reload(this.#parser.parseReloadParams(command.params));
|
|
129
84
|
case 'browsingContext.setViewport':
|
|
130
|
-
return this.#
|
|
85
|
+
return this.#browsingContextProcessor.process_browsingContext_setViewport(this.#parser.parseSetViewportParams(command.params));
|
|
86
|
+
// keep-sorted end
|
|
87
|
+
// CDP domain
|
|
88
|
+
// keep-sorted start block=yes
|
|
89
|
+
case 'cdp.getSession':
|
|
90
|
+
return this.#browsingContextProcessor.process_cdp_getSession(this.#parser.parseGetSessionParams(command.params));
|
|
91
|
+
case 'cdp.sendCommand':
|
|
92
|
+
return this.#browsingContextProcessor.process_cdp_sendCommand(this.#parser.parseSendCommandParams(command.params));
|
|
93
|
+
// keep-sorted end
|
|
94
|
+
// Input domain
|
|
95
|
+
// keep-sorted start block=yes
|
|
96
|
+
case 'input.performActions':
|
|
97
|
+
return this.#inputProcessor.performActions(this.#parser.parsePerformActionsParams(command.params));
|
|
98
|
+
case 'input.releaseActions':
|
|
99
|
+
return this.#inputProcessor.releaseActions(this.#parser.parseReleaseActionsParams(command.params));
|
|
100
|
+
// keep-sorted end
|
|
101
|
+
// Script domain
|
|
102
|
+
// keep-sorted start block=yes
|
|
131
103
|
case 'script.addPreloadScript':
|
|
132
|
-
return this.#
|
|
133
|
-
case 'script.removePreloadScript':
|
|
134
|
-
return this.#contextProcessor.process_script_removePreloadScript(this.#parser.parseRemovePreloadScriptParams(commandData.params));
|
|
135
|
-
case 'script.getRealms':
|
|
136
|
-
return this.#contextProcessor.process_script_getRealms(this.#parser.parseGetRealmsParams(commandData.params));
|
|
104
|
+
return this.#scriptProcessor.addPreloadScript(this.#parser.parseAddPreloadScriptParams(command.params));
|
|
137
105
|
case 'script.callFunction':
|
|
138
|
-
return this.#
|
|
139
|
-
case 'script.evaluate':
|
|
140
|
-
return this.#contextProcessor.process_script_evaluate(this.#parser.parseEvaluateParams(commandData.params));
|
|
106
|
+
return this.#scriptProcessor.callFunction(this.#parser.parseCallFunctionParams(command.params));
|
|
141
107
|
case 'script.disown':
|
|
142
|
-
return this.#
|
|
143
|
-
case '
|
|
144
|
-
return this.#
|
|
145
|
-
case '
|
|
146
|
-
return this.#
|
|
147
|
-
case '
|
|
148
|
-
return this.#
|
|
149
|
-
|
|
150
|
-
|
|
108
|
+
return this.#scriptProcessor.disown(this.#parser.parseDisownParams(command.params));
|
|
109
|
+
case 'script.evaluate':
|
|
110
|
+
return this.#scriptProcessor.evaluate(this.#parser.parseEvaluateParams(command.params));
|
|
111
|
+
case 'script.getRealms':
|
|
112
|
+
return this.#scriptProcessor.getRealms(this.#parser.parseGetRealmsParams(command.params));
|
|
113
|
+
case 'script.removePreloadScript':
|
|
114
|
+
return this.#scriptProcessor.removePreloadScript(this.#parser.parseRemovePreloadScriptParams(command.params));
|
|
115
|
+
// keep-sorted end
|
|
116
|
+
// Session domain
|
|
117
|
+
// keep-sorted start block=yes
|
|
118
|
+
case 'session.status':
|
|
119
|
+
return CommandProcessor.#process_session_status();
|
|
120
|
+
case 'session.subscribe':
|
|
121
|
+
return this.#process_session_subscribe(this.#parser.parseSubscribeParams(command.params), command.channel ?? null);
|
|
122
|
+
case 'session.unsubscribe':
|
|
123
|
+
return this.#process_session_unsubscribe(this.#parser.parseSubscribeParams(command.params), command.channel ?? null);
|
|
124
|
+
// keep-sorted end
|
|
151
125
|
}
|
|
152
126
|
// Intentionally kept outside of the switch statement to ensure that
|
|
153
127
|
// ESLint @typescript-eslint/switch-exhaustiveness-check triggers if a new
|
|
154
128
|
// command is added.
|
|
155
|
-
throw new protocol_js_1.
|
|
129
|
+
throw new protocol_js_1.UnknownCommandException(`Unknown command '${command.method}'.`);
|
|
156
130
|
}
|
|
157
131
|
async processCommand(command) {
|
|
158
132
|
try {
|
|
159
133
|
const result = await this.#processCommand(command);
|
|
160
134
|
const response = {
|
|
135
|
+
type: 'success',
|
|
161
136
|
id: command.id,
|
|
162
|
-
|
|
137
|
+
result,
|
|
163
138
|
};
|
|
164
139
|
this.emit('response', OutgoingBidiMessage_js_1.OutgoingBidiMessage.createResolved(response, command.channel ?? null));
|
|
165
140
|
}
|
|
166
141
|
catch (e) {
|
|
167
|
-
if (e instanceof protocol_js_1.
|
|
142
|
+
if (e instanceof protocol_js_1.Exception) {
|
|
168
143
|
const errorResponse = e;
|
|
169
144
|
this.emit('response', OutgoingBidiMessage_js_1.OutgoingBidiMessage.createResolved(errorResponse.toErrorResponse(command.id), command.channel ?? null));
|
|
170
145
|
}
|
|
171
146
|
else {
|
|
172
147
|
const error = e;
|
|
173
148
|
this.#logger?.(log_js_1.LogType.bidi, error);
|
|
174
|
-
this.emit('response', OutgoingBidiMessage_js_1.OutgoingBidiMessage.createResolved(new protocol_js_1.
|
|
149
|
+
this.emit('response', OutgoingBidiMessage_js_1.OutgoingBidiMessage.createResolved(new protocol_js_1.UnknownErrorException(error.message, error.stack).toErrorResponse(command.id), command.channel ?? null));
|
|
175
150
|
}
|
|
176
151
|
}
|
|
177
152
|
}
|