chromium-bidi 0.4.10 → 0.4.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. package/.browser +1 -1
  2. package/README.md +20 -30
  3. package/lib/cjs/bidiMapper/BidiServer.d.ts +6 -6
  4. package/lib/cjs/bidiMapper/BidiServer.js.map +1 -1
  5. package/lib/cjs/bidiMapper/CommandProcessor.d.ts +9 -7
  6. package/lib/cjs/bidiMapper/CommandProcessor.js +10 -0
  7. package/lib/cjs/bidiMapper/CommandProcessor.js.map +1 -1
  8. package/lib/cjs/bidiMapper/bidiMapper.d.ts +6 -3
  9. package/lib/cjs/bidiMapper/bidiMapper.js +8 -1
  10. package/lib/cjs/bidiMapper/bidiMapper.js.map +1 -1
  11. package/lib/cjs/bidiMapper/domains/context/PreloadScriptStorage.d.ts +9 -57
  12. package/lib/cjs/bidiMapper/domains/context/PreloadScriptStorage.js +5 -71
  13. package/lib/cjs/bidiMapper/domains/context/PreloadScriptStorage.js.map +1 -1
  14. package/lib/cjs/bidiMapper/domains/context/bidiPreloadScript.d.ts +42 -0
  15. package/lib/cjs/bidiMapper/domains/context/bidiPreloadScript.js +115 -0
  16. package/lib/cjs/bidiMapper/domains/context/bidiPreloadScript.js.map +1 -0
  17. package/lib/cjs/bidiMapper/domains/context/browsingContextImpl.d.ts +7 -6
  18. package/lib/cjs/bidiMapper/domains/context/browsingContextImpl.js +77 -27
  19. package/lib/cjs/bidiMapper/domains/context/browsingContextImpl.js.map +1 -1
  20. package/lib/cjs/bidiMapper/domains/context/browsingContextProcessor.d.ts +11 -9
  21. package/lib/cjs/bidiMapper/domains/context/browsingContextProcessor.js +61 -27
  22. package/lib/cjs/bidiMapper/domains/context/browsingContextProcessor.js.map +1 -1
  23. package/lib/cjs/bidiMapper/domains/context/browsingContextStorage.d.ts +2 -4
  24. package/lib/cjs/bidiMapper/domains/context/browsingContextStorage.js +0 -8
  25. package/lib/cjs/bidiMapper/domains/context/browsingContextStorage.js.map +1 -1
  26. package/lib/cjs/bidiMapper/domains/context/cdpTarget.d.ts +6 -21
  27. package/lib/cjs/bidiMapper/domains/context/cdpTarget.js +9 -56
  28. package/lib/cjs/bidiMapper/domains/context/cdpTarget.js.map +1 -1
  29. package/lib/cjs/bidiMapper/domains/events/EventManager.d.ts +1 -1
  30. package/lib/cjs/bidiMapper/domains/events/SubscriptionManager.d.ts +2 -2
  31. package/lib/cjs/bidiMapper/domains/input/ActionDispatcher.d.ts +25 -0
  32. package/lib/cjs/bidiMapper/domains/input/ActionDispatcher.js +469 -0
  33. package/lib/cjs/bidiMapper/domains/input/ActionDispatcher.js.map +1 -0
  34. package/lib/cjs/bidiMapper/domains/input/ActionOption.d.ts +22 -0
  35. package/lib/cjs/bidiMapper/{CdpConnection.js → domains/input/ActionOption.js} +2 -2
  36. package/lib/cjs/bidiMapper/domains/input/ActionOption.js.map +1 -0
  37. package/lib/cjs/bidiMapper/domains/input/InputSource.d.ts +59 -0
  38. package/lib/cjs/bidiMapper/domains/input/InputSource.js +137 -0
  39. package/lib/cjs/bidiMapper/domains/input/InputSource.js.map +1 -0
  40. package/lib/cjs/bidiMapper/domains/input/InputState.d.ts +29 -0
  41. package/lib/cjs/bidiMapper/domains/input/InputState.js +93 -0
  42. package/lib/cjs/bidiMapper/domains/input/InputState.js.map +1 -0
  43. package/lib/cjs/bidiMapper/domains/input/InputStateManager.d.ts +23 -0
  44. package/lib/cjs/bidiMapper/domains/input/InputStateManager.js +40 -0
  45. package/lib/cjs/bidiMapper/domains/input/InputStateManager.js.map +1 -0
  46. package/lib/cjs/{cdp/index.d.ts → bidiMapper/domains/input/USKeyboardLayout.d.ts} +2 -4
  47. package/lib/cjs/bidiMapper/domains/input/USKeyboardLayout.js +274 -0
  48. package/lib/cjs/bidiMapper/domains/input/USKeyboardLayout.js.map +1 -0
  49. package/lib/cjs/bidiMapper/domains/input/keyUtils.d.ts +19 -0
  50. package/lib/cjs/bidiMapper/domains/input/keyUtils.js +476 -0
  51. package/lib/cjs/bidiMapper/domains/input/keyUtils.js.map +1 -0
  52. package/lib/cjs/bidiMapper/domains/log/logManager.d.ts +3 -3
  53. package/lib/cjs/bidiMapper/domains/log/logManager.js.map +1 -1
  54. package/lib/cjs/bidiMapper/domains/network/networkProcessor.d.ts +3 -3
  55. package/lib/cjs/bidiMapper/domains/network/networkProcessor.js +5 -0
  56. package/lib/cjs/bidiMapper/domains/network/networkProcessor.js.map +1 -1
  57. package/lib/cjs/bidiMapper/domains/network/networkRequest.d.ts +17 -8
  58. package/lib/cjs/bidiMapper/domains/network/networkRequest.js +111 -88
  59. package/lib/cjs/bidiMapper/domains/network/networkRequest.js.map +1 -1
  60. package/lib/cjs/bidiMapper/domains/script/channelProxy.d.ts +18 -0
  61. package/lib/cjs/bidiMapper/domains/script/channelProxy.js +151 -0
  62. package/lib/cjs/bidiMapper/domains/script/channelProxy.js.map +1 -0
  63. package/lib/cjs/bidiMapper/domains/script/realm.d.ts +9 -9
  64. package/lib/cjs/bidiMapper/domains/script/realm.js.map +1 -1
  65. package/lib/cjs/bidiMapper/domains/script/realmStorage.d.ts +3 -3
  66. package/lib/cjs/bidiMapper/domains/script/realmStorage.js.map +1 -1
  67. package/lib/cjs/bidiMapper/domains/script/scriptEvaluator.d.ts +4 -4
  68. package/lib/cjs/bidiMapper/domains/script/scriptEvaluator.js +4 -88
  69. package/lib/cjs/bidiMapper/domains/script/scriptEvaluator.js.map +1 -1
  70. package/lib/cjs/bidiMapper/tsconfig.tsbuildinfo +1 -1
  71. package/lib/cjs/bidiServer/bidiServerRunner.d.ts +1 -1
  72. package/lib/cjs/bidiServer/index.js +1 -1
  73. package/lib/cjs/bidiServer/mapperServer.js +4 -3
  74. package/lib/cjs/bidiServer/mapperServer.js.map +1 -1
  75. package/lib/cjs/bidiServer/tsconfig.tsbuildinfo +1 -1
  76. package/lib/cjs/bidiTab/bidiTab.js +11 -6
  77. package/lib/cjs/bidiTab/bidiTab.js.map +1 -1
  78. package/lib/cjs/bidiTab/tsconfig.tsbuildinfo +1 -1
  79. package/lib/cjs/cdp/cdpClient.d.ts +19 -11
  80. package/lib/cjs/cdp/cdpClient.js +8 -20
  81. package/lib/cjs/cdp/cdpClient.js.map +1 -1
  82. package/lib/cjs/cdp/cdpConnection.d.ts +11 -15
  83. package/lib/cjs/cdp/cdpConnection.js +31 -42
  84. package/lib/cjs/cdp/cdpConnection.js.map +1 -1
  85. package/lib/cjs/cdp/cdpMessage.d.ts +1 -1
  86. package/lib/cjs/cdp/tsconfig.tsbuildinfo +1 -1
  87. package/lib/cjs/protocol/protocol.d.ts +200 -22
  88. package/lib/cjs/protocol/protocol.js +48 -2
  89. package/lib/cjs/protocol/protocol.js.map +1 -1
  90. package/lib/cjs/protocol/tsconfig.tsbuildinfo +1 -1
  91. package/lib/cjs/protocol-parser/protocol-parser.d.ts +84 -15
  92. package/lib/cjs/protocol-parser/protocol-parser.js +280 -20
  93. package/lib/cjs/protocol-parser/protocol-parser.js.map +1 -1
  94. package/lib/cjs/protocol-parser/tsconfig.tsbuildinfo +1 -1
  95. package/lib/cjs/utils/EventEmitter.d.ts +1 -1
  96. package/lib/cjs/utils/EventEmitter.js.map +1 -1
  97. package/lib/cjs/utils/Mutex.d.ts +29 -0
  98. package/lib/cjs/utils/Mutex.js +68 -0
  99. package/lib/cjs/utils/Mutex.js.map +1 -0
  100. package/lib/cjs/utils/assert.d.ts +17 -0
  101. package/lib/cjs/utils/assert.js +26 -0
  102. package/lib/cjs/utils/assert.js.map +1 -0
  103. package/lib/cjs/utils/processingQueue.d.ts +1 -1
  104. package/lib/cjs/utils/processingQueue.js.map +1 -1
  105. package/lib/cjs/utils/tsconfig.tsbuildinfo +1 -1
  106. package/lib/cjs/utils/uuid.d.ts +25 -0
  107. package/lib/cjs/utils/uuid.js +63 -0
  108. package/lib/cjs/utils/uuid.js.map +1 -0
  109. package/lib/cjs/utils/websocketTransport.d.ts +2 -2
  110. package/lib/iife/mapperTab.js +2 -2
  111. package/lib/iife/mapperTab.js.map +1 -1
  112. package/package.json +31 -11
  113. package/lib/cjs/bidiMapper/CdpConnection.d.ts +0 -42
  114. package/lib/cjs/bidiMapper/CdpConnection.js.map +0 -1
  115. package/lib/cjs/cdp/index.js +0 -26
  116. package/lib/cjs/cdp/index.js.map +0 -1
package/.browser CHANGED
@@ -1 +1 @@
1
- chrome@115.0.5781.0
1
+ chrome@116.0.5829.0
package/README.md CHANGED
@@ -6,7 +6,6 @@
6
6
  ![Unit Tests](https://github.com/GoogleChromeLabs/chromium-bidi/actions/workflows/unit.yml/badge.svg)
7
7
  ![WPT Tests](https://github.com/GoogleChromeLabs/chromium-bidi/actions/workflows/wpt.yml/badge.svg)
8
8
 
9
- ![Generate WPT Report](https://github.com/GoogleChromeLabs/chromium-bidi/actions/workflows/generate-wpt-report.yml/badge.svg)
10
9
  ![Pre-commit](https://github.com/GoogleChromeLabs/chromium-bidi/actions/workflows/pre-commit.yml/badge.svg)
11
10
 
12
11
  This is an implementation of the
@@ -211,7 +210,7 @@ output to the file `log.txt`:
211
210
  Running:
212
211
 
213
212
  ```sh
214
- npm test
213
+ npm run unit
215
214
  ```
216
215
 
217
216
  ### E2E tests
@@ -233,7 +232,9 @@ The E2E tests require BiDi server running on the same host. By default, tests
233
232
  try to connect to the port `8080`. The server can be run from the project root:
234
233
 
235
234
  ```sh
236
- npm run e2e
235
+ npm run e2e # alias to to e2e-headless
236
+ npm run e2e-headful
237
+ npm run e2e-headless
237
238
  ```
238
239
 
239
240
  Use the `PORT` environment variable to connect to another port:
@@ -336,38 +337,13 @@ npm run build --watch
336
337
  #### 3. Run
337
338
 
338
339
  ```sh
339
- ./wpt/wpt run \
340
- --webdriver-binary runBiDiServer.sh \
341
- --binary "$BROWSER_BIN" \
342
- --manifest wpt/MANIFEST.json \
343
- --metadata wpt-metadata/mapper/headless \
344
- chromium \
345
- webdriver/tests/bidi/
340
+ npm run wpt -- webdriver/tests/bidi/
346
341
  ```
347
342
 
348
343
  ### Update WPT expectations if needed
349
344
 
350
- #### 1. Run WPT tests with custom `log-wptreport`:
351
-
352
- ```sh
353
- ./wpt/wpt run \
354
- --webdriver-binary runBiDiServer.sh \
355
- --binary "$BROWSER_BIN" \
356
- --manifest wpt/MANIFEST.json \
357
- --metadata wpt-metadata/mapper/headless \
358
- --log-wptreport wptreport.json \
359
- chromium \
360
- webdriver/tests/bidi/
361
- ```
362
-
363
- #### 2. Update expectations based on the previous test run:
364
-
365
345
  ```sh
366
- ./wpt/wpt update-expectations \
367
- --product chromium \
368
- --manifest wpt/MANIFEST.json \
369
- --metadata wpt-metadata/mapper/headless \
370
- wptreport.json
346
+ UPDATE_EXPECTATIONS=true npm run wpt -- webdriver/tests/bidi/
371
347
  ```
372
348
 
373
349
  ## How does it work?
@@ -390,6 +366,20 @@ new command, add it to `_processCommand`, write and call processor for it.
390
366
 
391
367
  ### Publish new `npm` release
392
368
 
369
+ #### Semi-automatic release
370
+
371
+ Go to [GitHub Actions](https://github.com/GoogleChromeLabs/chromium-bidi/actions/workflows/create-release-pr.yml) and trigger a run with the correct SemVer
372
+ type.
373
+ That will create a PR. Once that is merge a new tag and release will be created.
374
+
375
+ #### Manual release
376
+
377
+ 1. Dry-run
378
+
379
+ ```sh
380
+ npm publish --dry-run
381
+ ```
382
+
393
383
  1. Open a PR bumping the chromium-bidi version number in `package.json` for review:
394
384
 
395
385
  ```sh
@@ -15,20 +15,20 @@
15
15
  * limitations under the License.
16
16
  */
17
17
  import { EventEmitter } from '../utils/EventEmitter.js';
18
- import { LoggerFn } from '../utils/log.js';
18
+ import { type LoggerFn } from '../utils/log.js';
19
19
  import type { Message } from '../protocol/protocol.js';
20
- import { BidiParser } from './CommandProcessor.js';
21
- import { BidiTransport } from './BidiTransport.js';
20
+ import type { ICdpConnection } from '../cdp/cdpConnection.js';
21
+ import { type BidiParser } from './CommandProcessor.js';
22
+ import type { BidiTransport } from './BidiTransport.js';
22
23
  import { BrowsingContextStorage } from './domains/context/browsingContextStorage.js';
23
- import { CdpConnection } from './CdpConnection.js';
24
- import { OutgoingBidiMessage } from './OutgoingBidiMessage.js';
24
+ import type { OutgoingBidiMessage } from './OutgoingBidiMessage.js';
25
25
  type BidiServerEvents = {
26
26
  message: Message.RawCommandRequest;
27
27
  };
28
28
  export declare class BidiServer extends EventEmitter<BidiServerEvents> {
29
29
  #private;
30
30
  private constructor();
31
- static createAndStart(bidiTransport: BidiTransport, cdpConnection: CdpConnection, selfTargetId: string, parser?: BidiParser, logger?: LoggerFn): Promise<BidiServer>;
31
+ static createAndStart(bidiTransport: BidiTransport, cdpConnection: ICdpConnection, selfTargetId: string, parser?: BidiParser, 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":"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"}
1
+ {"version":3,"file":"BidiServer.js","sourceRoot":"","sources":["../../../src/bidiMapper/BidiServer.ts"],"names":[],"mappings":"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"}
@@ -14,14 +14,14 @@
14
14
  * See the License for the specific language governing permissions and
15
15
  * limitations under the License.
16
16
  */
17
- import { BrowsingContext, CDP, Message, Script, Session } from '../protocol/protocol.js';
18
- import { LoggerFn } from '../utils/log.js';
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
19
  import { EventEmitter } from '../utils/EventEmitter.js';
20
- import { BrowsingContextStorage } from './domains/context/browsingContextStorage.js';
21
- import { CdpConnection } from './CdpConnection.js';
22
- import { IEventManager } from './domains/events/EventManager.js';
20
+ import type { ICdpConnection } from '../cdp/cdpConnection.js';
21
+ import type { BrowsingContextStorage } from './domains/context/browsingContextStorage.js';
22
+ import type { IEventManager } from './domains/events/EventManager.js';
23
23
  import { OutgoingBidiMessage } from './OutgoingBidiMessage.js';
24
- import { RealmStorage } from './domains/script/realmStorage.js';
24
+ import type { RealmStorage } from './domains/script/realmStorage.js';
25
25
  type CommandProcessorEvents = {
26
26
  response: Promise<OutgoingBidiMessage>;
27
27
  };
@@ -42,10 +42,12 @@ export interface BidiParser {
42
42
  parseCloseParams(params: object): BrowsingContext.CloseParameters;
43
43
  parseCaptureScreenshotParams(params: object): BrowsingContext.CaptureScreenshotParameters;
44
44
  parsePrintParams(params: object): BrowsingContext.PrintParameters;
45
+ parsePerformActionsParams(params: object): Input.PerformActionsParameters;
46
+ parseReleaseActionsParams(params: object): Input.ReleaseActionsParameters;
45
47
  }
46
48
  export declare class CommandProcessor extends EventEmitter<CommandProcessorEvents> {
47
49
  #private;
48
- constructor(realmStorage: RealmStorage, cdpConnection: CdpConnection, eventManager: IEventManager, selfTargetId: string, parser: BidiParser | undefined, browsingContextStorage: BrowsingContextStorage, logger?: LoggerFn);
50
+ constructor(realmStorage: RealmStorage, cdpConnection: ICdpConnection, eventManager: IEventManager, selfTargetId: string, parser: BidiParser | undefined, browsingContextStorage: BrowsingContextStorage, logger?: LoggerFn);
49
51
  processCommand(command: Message.RawCommandRequest): Promise<void>;
50
52
  }
51
53
  export {};
@@ -71,6 +71,12 @@ class BidiNoOpParser {
71
71
  parsePrintParams(params) {
72
72
  return params;
73
73
  }
74
+ parsePerformActionsParams(params) {
75
+ return params;
76
+ }
77
+ parseReleaseActionsParams(params) {
78
+ return params;
79
+ }
74
80
  }
75
81
  class CommandProcessor extends EventEmitter_js_1.EventEmitter {
76
82
  #contextProcessor;
@@ -129,6 +135,10 @@ class CommandProcessor extends EventEmitter_js_1.EventEmitter {
129
135
  return this.#contextProcessor.process_script_evaluate(this.#parser.parseEvaluateParams(commandData.params));
130
136
  case 'script.disown':
131
137
  return this.#contextProcessor.process_script_disown(this.#parser.parseDisownParams(commandData.params));
138
+ case 'input.performActions':
139
+ return this.#contextProcessor.process_input_performActions(this.#parser.parsePerformActionsParams(commandData.params));
140
+ case 'input.releaseActions':
141
+ return this.#contextProcessor.process_input_releaseActions(this.#parser.parseReleaseActionsParams(commandData.params));
132
142
  case 'cdp.sendCommand':
133
143
  return this.#contextProcessor.process_cdp_sendCommand(this.#parser.parseSendCommandParams(commandData.params));
134
144
  case 'cdp.getSession':
@@ -1 +1 @@
1
- {"version":3,"file":"CommandProcessor.js","sourceRoot":"","sources":["../../../src/bidiMapper/CommandProcessor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CommandProcessor.js","sourceRoot":"","sources":["../../../src/bidiMapper/CommandProcessor.ts"],"names":[],"mappings":"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"}
@@ -17,9 +17,12 @@
17
17
  /**
18
18
  * @fileoverview The entry point to the BiDi Mapper namespace.
19
19
  * Other modules should only access exports defined in this file.
20
- * XXX: eslint rule for this.
20
+ * XXX: Add ESlint rule for this (https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-restricted-paths.md)
21
21
  */
22
- export { CdpConnection, CdpClient } from './CdpConnection.js';
23
22
  export { BidiServer } from './BidiServer.js';
24
- export { BidiTransport } from './BidiTransport.js';
23
+ export type { ICdpConnection, ICdpConnection as CdpConnection, } from '../cdp/cdpConnection.js';
24
+ export type { ICdpClient, ICdpClient as CdpClient } from '../cdp/cdpClient.js';
25
25
  export { EventEmitter } from '../utils/EventEmitter.js';
26
+ export type { BidiTransport } from './BidiTransport.js';
27
+ export { OutgoingBidiMessage } from './OutgoingBidiMessage.js';
28
+ export type { BidiParser } from './CommandProcessor.js';
@@ -16,9 +16,16 @@
16
16
  * limitations under the License.
17
17
  */
18
18
  Object.defineProperty(exports, "__esModule", { value: true });
19
- exports.EventEmitter = exports.BidiServer = void 0;
19
+ exports.OutgoingBidiMessage = exports.EventEmitter = exports.BidiServer = void 0;
20
+ /**
21
+ * @fileoverview The entry point to the BiDi Mapper namespace.
22
+ * Other modules should only access exports defined in this file.
23
+ * XXX: Add ESlint rule for this (https://github.com/import-js/eslint-plugin-import/blob/main/docs/rules/no-restricted-paths.md)
24
+ */
20
25
  var BidiServer_js_1 = require("./BidiServer.js");
21
26
  Object.defineProperty(exports, "BidiServer", { enumerable: true, get: function () { return BidiServer_js_1.BidiServer; } });
22
27
  var EventEmitter_js_1 = require("../utils/EventEmitter.js");
23
28
  Object.defineProperty(exports, "EventEmitter", { enumerable: true, get: function () { return EventEmitter_js_1.EventEmitter; } });
29
+ var OutgoingBidiMessage_js_1 = require("./OutgoingBidiMessage.js");
30
+ Object.defineProperty(exports, "OutgoingBidiMessage", { enumerable: true, get: function () { return OutgoingBidiMessage_js_1.OutgoingBidiMessage; } });
24
31
  //# sourceMappingURL=bidiMapper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bidiMapper.js","sourceRoot":"","sources":["../../../src/bidiMapper/bidiMapper.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;AAQH,iDAA2C;AAAnC,2GAAA,UAAU,OAAA;AAElB,4DAAsD;AAA9C,+GAAA,YAAY,OAAA"}
1
+ {"version":3,"file":"bidiMapper.js","sourceRoot":"","sources":["../../../src/bidiMapper/bidiMapper.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;AAEH;;;;GAIG;AACH,iDAA2C;AAAnC,2GAAA,UAAU,OAAA;AAMlB,4DAAsD;AAA9C,+GAAA,YAAY,OAAA;AAEpB,mEAA6D;AAArD,6HAAA,mBAAmB,OAAA"}
@@ -1,69 +1,21 @@
1
- import { CommonDataTypes, Script } from '../../../protocol/protocol.js';
2
- import { CdpTarget } from './cdpTarget.js';
3
- export type BidiPreloadScript = {
4
- /** BiDi ID, an automatically generated UUID. */
5
- id: string;
6
- /** CDP preload scripts. */
7
- cdpPreloadScripts: CdpPreloadScript[];
8
- /** The script itself, in a format expected by the spec i.e. a function. */
9
- functionDeclaration: string;
10
- /** The script sandbox / world name. */
11
- sandbox?: string;
12
- /** Browsing context ID. */
13
- contextId: CommonDataTypes.BrowsingContext | null;
14
- };
15
- /** BidiPreloadScripts can be filtered by either context ID or BiDi ID. */
16
- export type BidiPreloadScriptFilter = Partial<Pick<BidiPreloadScript, 'contextId'> & Pick<BidiPreloadScript, 'id'>> & {
1
+ import type { CommonDataTypes } from '../../../protocol/protocol.js';
2
+ import type { CdpTarget } from './cdpTarget.js';
3
+ import { BidiPreloadScript } from './bidiPreloadScript.js';
4
+ /**
5
+ * BidiPreloadScripts can be filtered by either context ID, BiDi ID or
6
+ * target ID.
7
+ */
8
+ export type BidiPreloadScriptFilter = Partial<Pick<BidiPreloadScript, 'contextId'> & Pick<BidiPreloadScript, 'id'> & Pick<CdpTarget, 'targetId'>> & {
17
9
  contextIds?: (CommonDataTypes.BrowsingContext | null)[];
18
10
  };
19
- export type CdpPreloadScript = {
20
- /** CDP target. Includes session ID and target ID. */
21
- target: CdpTarget;
22
- /** CDP preload script ID. */
23
- preloadScriptId: Script.PreloadScript;
24
- };
25
- /** CdpPreloadScripts can be filtered by CDP session ID or target ID. */
26
- export type CdpPreloadScriptFilter = {
27
- /** CDP session ID. */
28
- sessionId?: string;
29
- /** CDP target ID. */
30
- targetId?: string;
31
- };
32
11
  /**
33
12
  * Container class for preload scripts.
34
- *
35
- * BiDi IDs are generated by the server and are unique within the context.
36
- *
37
- * CDP preload script IDs are generated by the client and are unique
38
- * within the session.
39
- *
40
- * The mapping between BiDi and CDP preload script IDs is 1:many.
41
- * BiDi IDs are needed by the mapper to keep track of potential multiple CDP IDs
42
- * in the client.
43
- *
44
- * This class does not concern itself with the validity of the IDs.
45
13
  */
46
14
  export declare class PreloadScriptStorage {
47
15
  #private;
48
16
  /** Finds all entries that match the given filter. */
49
17
  findPreloadScripts(filter?: BidiPreloadScriptFilter): BidiPreloadScript[];
50
- /**
51
- * Keeps track of the given CDP preload scripts associated with the given
52
- * browsing context ID.
53
- *
54
- * @param contextId Browsing context ID, or null for global context.
55
- * @param cdpPreloadScripts CDP preload scripts.
56
- * @param functionDeclaration The script itself, in a format expected by the spec
57
- * i.e. a function.
58
- */
59
- addPreloadScripts(contextId: CommonDataTypes.BrowsingContext | null, cdpPreloadScripts: CdpPreloadScript[], functionDeclaration: string, sandbox?: string): BidiPreloadScript;
60
- /**
61
- * Keeps track of the given CDP preload script in the given BiDi preload
62
- * script.
63
- */
64
- appendCdpPreloadScript(script: BidiPreloadScript, cdpPreloadScript: CdpPreloadScript): void;
18
+ addPreloadScript(preloadScript: BidiPreloadScript): void;
65
19
  /** Deletes all BiDi preload script entries that match the given filter. */
66
20
  removeBiDiPreloadScripts(filter?: BidiPreloadScriptFilter): void;
67
- /** Deletes all CDP preload script entries that match the given filter. */
68
- removeCdpPreloadScripts(filter?: CdpPreloadScriptFilter): void;
69
21
  }
@@ -1,36 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.PreloadScriptStorage = void 0;
4
- /*
5
- * Copyright 2023 Google LLC.
6
- * Copyright (c) Microsoft Corporation.
7
- *
8
- * Licensed under the Apache License, Version 2.0 (the "License");
9
- * you may not use this file except in compliance with the License.
10
- * You may obtain a copy of the License at
11
- *
12
- * http://www.apache.org/licenses/LICENSE-2.0
13
- *
14
- * Unless required by applicable law or agreed to in writing, software
15
- * distributed under the License is distributed on an "AS IS" BASIS,
16
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17
- * See the License for the specific language governing permissions and
18
- * limitations under the License.
19
- */
20
- const uuid_1 = require("uuid");
21
4
  /**
22
5
  * Container class for preload scripts.
23
- *
24
- * BiDi IDs are generated by the server and are unique within the context.
25
- *
26
- * CDP preload script IDs are generated by the client and are unique
27
- * within the session.
28
- *
29
- * The mapping between BiDi and CDP preload script IDs is 1:many.
30
- * BiDi IDs are needed by the mapper to keep track of potential multiple CDP IDs
31
- * in the client.
32
- *
33
- * This class does not concern itself with the validity of the IDs.
34
6
  */
35
7
  class PreloadScriptStorage {
36
8
  /** Tracks all BiDi preload scripts. */
@@ -52,37 +24,15 @@ class PreloadScriptStorage {
52
24
  !filter.contextIds.includes(script.contextId)) {
53
25
  return false;
54
26
  }
27
+ if (filter.targetId !== undefined &&
28
+ !script.targetIds.has(filter.targetId)) {
29
+ return false;
30
+ }
55
31
  return true;
56
32
  });
57
33
  }
58
- /**
59
- * Keeps track of the given CDP preload scripts associated with the given
60
- * browsing context ID.
61
- *
62
- * @param contextId Browsing context ID, or null for global context.
63
- * @param cdpPreloadScripts CDP preload scripts.
64
- * @param functionDeclaration The script itself, in a format expected by the spec
65
- * i.e. a function.
66
- */
67
- addPreloadScripts(contextId, cdpPreloadScripts, functionDeclaration, sandbox) {
68
- // Generate a random ID.
69
- const bidiId = (0, uuid_1.v4)();
70
- const preloadScript = {
71
- id: bidiId,
72
- contextId,
73
- cdpPreloadScripts,
74
- functionDeclaration,
75
- sandbox,
76
- };
34
+ addPreloadScript(preloadScript) {
77
35
  this.#scripts.add(preloadScript);
78
- return preloadScript;
79
- }
80
- /**
81
- * Keeps track of the given CDP preload script in the given BiDi preload
82
- * script.
83
- */
84
- appendCdpPreloadScript(script, cdpPreloadScript) {
85
- script.cdpPreloadScripts.push(cdpPreloadScript);
86
36
  }
87
37
  /** Deletes all BiDi preload script entries that match the given filter. */
88
38
  removeBiDiPreloadScripts(filter) {
@@ -90,22 +40,6 @@ class PreloadScriptStorage {
90
40
  this.#scripts.delete(preloadScript);
91
41
  }
92
42
  }
93
- /** Deletes all CDP preload script entries that match the given filter. */
94
- removeCdpPreloadScripts(filter) {
95
- for (const preloadScript of this.#scripts) {
96
- preloadScript.cdpPreloadScripts = preloadScript.cdpPreloadScripts.filter((cdpPreloadScript) => {
97
- if (filter?.targetId !== undefined &&
98
- filter.targetId !== cdpPreloadScript.target.targetId) {
99
- return true;
100
- }
101
- if (filter?.sessionId !== undefined &&
102
- filter.sessionId !== cdpPreloadScript.target.cdpSessionId) {
103
- return true;
104
- }
105
- return false;
106
- });
107
- }
108
- }
109
43
  }
110
44
  exports.PreloadScriptStorage = PreloadScriptStorage;
111
45
  //# sourceMappingURL=PreloadScriptStorage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PreloadScriptStorage.js","sourceRoot":"","sources":["../../../../../src/bidiMapper/domains/context/PreloadScriptStorage.ts"],"names":[],"mappings":";;;AAAA;;;;;;;;;;;;;;;GAeG;AACH,+BAAkC;AAuClC;;;;;;;;;;;;;GAaG;AACH,MAAa,oBAAoB;IAC/B,wCAAwC;IAC/B,QAAQ,GAAG,IAAI,GAAG,EAAqB,CAAC;IAEjD,qDAAqD;IACrD,kBAAkB,CAAC,MAAgC;QACjD,IAAI,CAAC,MAAM,EAAE;YACX,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC3B;QAED,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;YAC1C,IAAI,MAAM,CAAC,EAAE,KAAK,SAAS,IAAI,MAAM,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,EAAE;gBACtD,OAAO,KAAK,CAAC;aACd;YACD,IACE,MAAM,CAAC,SAAS,KAAK,SAAS;gBAC9B,MAAM,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS,EACrC;gBACA,OAAO,KAAK,CAAC;aACd;YACD,IACE,MAAM,CAAC,UAAU,KAAK,SAAS;gBAC/B,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,EAC7C;gBACA,OAAO,KAAK,CAAC;aACd;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;IAED;;;;;;;;OAQG;IACH,iBAAiB,CACf,SAAiD,EACjD,iBAAqC,EACrC,mBAA2B,EAC3B,OAAgB;QAEhB,wBAAwB;QACxB,MAAM,MAAM,GAAW,IAAA,SAAM,GAAE,CAAC;QAEhC,MAAM,aAAa,GAAG;YACpB,EAAE,EAAE,MAAM;YACV,SAAS;YACT,iBAAiB;YACjB,mBAAmB;YACnB,OAAO;SACR,CAAC;QAEF,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QAEjC,OAAO,aAAa,CAAC;IACvB,CAAC;IAED;;;OAGG;IACH,sBAAsB,CACpB,MAAyB,EACzB,gBAAkC;QAElC,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAClD,CAAC;IAED,2EAA2E;IAC3E,wBAAwB,CAAC,MAAgC;QACvD,KAAK,MAAM,aAAa,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE;YAC3D,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;SACrC;IACH,CAAC;IAED,0EAA0E;IAC1E,uBAAuB,CAAC,MAA+B;QACrD,KAAK,MAAM,aAAa,IAAI,IAAI,CAAC,QAAQ,EAAE;YACzC,aAAa,CAAC,iBAAiB,GAAG,aAAa,CAAC,iBAAiB,CAAC,MAAM,CACtE,CAAC,gBAAgB,EAAE,EAAE;gBACnB,IACE,MAAM,EAAE,QAAQ,KAAK,SAAS;oBAC9B,MAAM,CAAC,QAAQ,KAAK,gBAAgB,CAAC,MAAM,CAAC,QAAQ,EACpD;oBACA,OAAO,IAAI,CAAC;iBACb;gBACD,IACE,MAAM,EAAE,SAAS,KAAK,SAAS;oBAC/B,MAAM,CAAC,SAAS,KAAK,gBAAgB,CAAC,MAAM,CAAC,YAAY,EACzD;oBACA,OAAO,IAAI,CAAC;iBACb;gBACD,OAAO,KAAK,CAAC;YACf,CAAC,CACF,CAAC;SACH;IACH,CAAC;CACF;AArGD,oDAqGC"}
1
+ {"version":3,"file":"PreloadScriptStorage.js","sourceRoot":"","sources":["../../../../../src/bidiMapper/domains/context/PreloadScriptStorage.ts"],"names":[],"mappings":";;;AA+BA;;GAEG;AACH,MAAa,oBAAoB;IAC/B,wCAAwC;IAC/B,QAAQ,GAAG,IAAI,GAAG,EAAqB,CAAC;IAEjD,qDAAqD;IACrD,kBAAkB,CAAC,MAAgC;QACjD,IAAI,CAAC,MAAM,EAAE;YACX,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC;SAC3B;QAED,OAAO,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,MAAM,EAAE,EAAE;YAC1C,IAAI,MAAM,CAAC,EAAE,KAAK,SAAS,IAAI,MAAM,CAAC,EAAE,KAAK,MAAM,CAAC,EAAE,EAAE;gBACtD,OAAO,KAAK,CAAC;aACd;YACD,IACE,MAAM,CAAC,SAAS,KAAK,SAAS;gBAC9B,MAAM,CAAC,SAAS,KAAK,MAAM,CAAC,SAAS,EACrC;gBACA,OAAO,KAAK,CAAC;aACd;YACD,IACE,MAAM,CAAC,UAAU,KAAK,SAAS;gBAC/B,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,EAC7C;gBACA,OAAO,KAAK,CAAC;aACd;YACD,IACE,MAAM,CAAC,QAAQ,KAAK,SAAS;gBAC7B,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,EACtC;gBACA,OAAO,KAAK,CAAC;aACd;YACD,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;IAED,gBAAgB,CAAC,aAAgC;QAC/C,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IACnC,CAAC;IAED,2EAA2E;IAC3E,wBAAwB,CAAC,MAAgC;QACvD,KAAK,MAAM,aAAa,IAAI,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,EAAE;YAC3D,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;SACrC;IACH,CAAC;CACF;AA9CD,oDA8CC"}
@@ -0,0 +1,42 @@
1
+ import type { CommonDataTypes, Script } from '../../../protocol/protocol.js';
2
+ import type { CdpTarget } from './cdpTarget.js';
3
+ /**
4
+ * BiDi IDs are generated by the server and are unique within the context.
5
+ *
6
+ * CDP preload script IDs are generated by the client and are unique
7
+ * within the session.
8
+ *
9
+ * The mapping between BiDi and CDP preload script IDs is 1:many.
10
+ * BiDi IDs are needed by the mapper to keep track of potential multiple CDP IDs
11
+ * in the client.
12
+ */
13
+ export declare class BidiPreloadScript {
14
+ #private;
15
+ get id(): string;
16
+ get contextId(): CommonDataTypes.BrowsingContext | null;
17
+ get targetIds(): Set<string>;
18
+ constructor(params: Script.AddPreloadScriptParameters);
19
+ /**
20
+ * Adds the script to the given CDP targets by calling the
21
+ * `Page.addScriptToEvaluateOnNewDocument` command.
22
+ */
23
+ initInTargets(cdpTargets: Iterable<CdpTarget>): Promise<void>;
24
+ /**
25
+ * Adds the script to the given CDP target by calling the
26
+ * `Page.addScriptToEvaluateOnNewDocument` command.
27
+ */
28
+ initInTarget(cdpTarget: CdpTarget): Promise<void>;
29
+ /**
30
+ * Schedules the script to be run right after
31
+ * `Runtime.runIfWaitingForDebugger`, but does not wait for result.
32
+ */
33
+ scheduleEvaluateInTarget(cdpTarget: CdpTarget): void;
34
+ /**
35
+ * Removes this script from all CDP targets.
36
+ */
37
+ remove(): Promise<void>;
38
+ /**
39
+ * Removes the provided cdp target from the list of cdp preload scripts.
40
+ */
41
+ cdpTargetIsGone(cdpTargetId: string): Promise<void>;
42
+ }
@@ -0,0 +1,115 @@
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
+ */
19
+ Object.defineProperty(exports, "__esModule", { value: true });
20
+ exports.BidiPreloadScript = void 0;
21
+ const uuid_js_1 = require("../../../utils/uuid.js");
22
+ /**
23
+ * BiDi IDs are generated by the server and are unique within the context.
24
+ *
25
+ * CDP preload script IDs are generated by the client and are unique
26
+ * within the session.
27
+ *
28
+ * The mapping between BiDi and CDP preload script IDs is 1:many.
29
+ * BiDi IDs are needed by the mapper to keep track of potential multiple CDP IDs
30
+ * in the client.
31
+ */
32
+ class BidiPreloadScript {
33
+ /** BiDi ID, an automatically generated UUID. */
34
+ #id = (0, uuid_js_1.uuidv4)();
35
+ /** CDP preload scripts. */
36
+ #cdpPreloadScripts = [];
37
+ /** The script itself, in a format expected by the spec i.e. a function. */
38
+ #functionDeclaration;
39
+ /** Browsing context ID. */
40
+ #contextId;
41
+ /** Targets, in which the preload script is initialized. */
42
+ #targetIds = new Set();
43
+ get id() {
44
+ return this.#id;
45
+ }
46
+ get contextId() {
47
+ return this.#contextId;
48
+ }
49
+ get targetIds() {
50
+ return this.#targetIds;
51
+ }
52
+ constructor(params) {
53
+ if (params.sandbox !== undefined) {
54
+ // TODO: Handle sandbox.
55
+ throw new Error('Sandbox is not supported yet');
56
+ }
57
+ if (params.arguments !== undefined && params.arguments.length > 0) {
58
+ // TODO: Handle arguments.
59
+ throw new Error('add preload script arguments are not supported');
60
+ }
61
+ this.#functionDeclaration = params.functionDeclaration;
62
+ this.#contextId = params.context ?? null;
63
+ }
64
+ /**
65
+ * Adds the script to the given CDP targets by calling the
66
+ * `Page.addScriptToEvaluateOnNewDocument` command.
67
+ */
68
+ async initInTargets(cdpTargets) {
69
+ await Promise.all(Array.from(cdpTargets).map((cdpTarget) => this.initInTarget(cdpTarget)));
70
+ }
71
+ /**
72
+ * Adds the script to the given CDP target by calling the
73
+ * `Page.addScriptToEvaluateOnNewDocument` command.
74
+ */
75
+ async initInTarget(cdpTarget) {
76
+ const addCdpPreloadScriptResult = await cdpTarget.cdpClient.sendCommand('Page.addScriptToEvaluateOnNewDocument', {
77
+ source: `(${this.#functionDeclaration})();`,
78
+ });
79
+ this.#cdpPreloadScripts.push({
80
+ target: cdpTarget,
81
+ preloadScriptId: addCdpPreloadScriptResult.identifier,
82
+ });
83
+ this.#targetIds.add(cdpTarget.targetId);
84
+ }
85
+ /**
86
+ * Schedules the script to be run right after
87
+ * `Runtime.runIfWaitingForDebugger`, but does not wait for result.
88
+ */
89
+ scheduleEvaluateInTarget(cdpTarget) {
90
+ void cdpTarget.cdpClient.sendCommand('Runtime.evaluate', {
91
+ expression: `(${this.#functionDeclaration})();`,
92
+ });
93
+ }
94
+ /**
95
+ * Removes this script from all CDP targets.
96
+ */
97
+ async remove() {
98
+ for (const cdpPreloadScript of this.#cdpPreloadScripts) {
99
+ const cdpTarget = cdpPreloadScript.target;
100
+ const cdpPreloadScriptId = cdpPreloadScript.preloadScriptId;
101
+ await cdpTarget.cdpClient.sendCommand('Page.removeScriptToEvaluateOnNewDocument', {
102
+ identifier: cdpPreloadScriptId,
103
+ });
104
+ }
105
+ }
106
+ /**
107
+ * Removes the provided cdp target from the list of cdp preload scripts.
108
+ */
109
+ async cdpTargetIsGone(cdpTargetId) {
110
+ this.#cdpPreloadScripts = this.#cdpPreloadScripts.filter((cdpPreloadScript) => cdpPreloadScript.target?.targetId !== cdpTargetId);
111
+ this.#targetIds.delete(cdpTargetId);
112
+ }
113
+ }
114
+ exports.BidiPreloadScript = BidiPreloadScript;
115
+ //# sourceMappingURL=bidiPreloadScript.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bidiPreloadScript.js","sourceRoot":"","sources":["../../../../../src/bidiMapper/domains/context/bidiPreloadScript.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;GAgBG;;;AAGH,oDAA8C;AAU9C;;;;;;;;;GASG;AACH,MAAa,iBAAiB;IAC5B,gDAAgD;IACvC,GAAG,GAAW,IAAA,gBAAM,GAAE,CAAC;IAChC,2BAA2B;IAC3B,kBAAkB,GAAuB,EAAE,CAAC;IAC5C,2EAA2E;IAClE,oBAAoB,CAAS;IACtC,2BAA2B;IAClB,UAAU,CAAyC;IAC5D,2DAA2D;IAClD,UAAU,GAAgB,IAAI,GAAG,EAAE,CAAC;IAE7C,IAAI,EAAE;QACJ,OAAO,IAAI,CAAC,GAAG,CAAC;IAClB,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,YAAY,MAAyC;QACnD,IAAI,MAAM,CAAC,OAAO,KAAK,SAAS,EAAE;YAChC,wBAAwB;YACxB,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;SACjD;QACD,IAAI,MAAM,CAAC,SAAS,KAAK,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE;YACjE,0BAA0B;YAC1B,MAAM,IAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;SACnE;QAED,IAAI,CAAC,oBAAoB,GAAG,MAAM,CAAC,mBAAmB,CAAC;QACvD,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,OAAO,IAAI,IAAI,CAAC;IAC3C,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,aAAa,CAAC,UAA+B;QACjD,MAAM,OAAO,CAAC,GAAG,CACf,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CACxE,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,YAAY,CAAC,SAAoB;QACrC,MAAM,yBAAyB,GAAG,MAAM,SAAS,CAAC,SAAS,CAAC,WAAW,CACrE,uCAAuC,EACvC;YACE,MAAM,EAAE,IAAI,IAAI,CAAC,oBAAoB,MAAM;SAC5C,CACF,CAAC;QAEF,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;YAC3B,MAAM,EAAE,SAAS;YACjB,eAAe,EAAE,yBAAyB,CAAC,UAAU;SACtD,CAAC,CAAC;QACH,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC;IAED;;;OAGG;IACH,wBAAwB,CAAC,SAAoB;QAC3C,KAAK,SAAS,CAAC,SAAS,CAAC,WAAW,CAAC,kBAAkB,EAAE;YACvD,UAAU,EAAE,IAAI,IAAI,CAAC,oBAAoB,MAAM;SAChD,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,MAAM;QACV,KAAK,MAAM,gBAAgB,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACtD,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,CAAC;YAC1C,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,eAAe,CAAC;YAC5D,MAAM,SAAS,CAAC,SAAS,CAAC,WAAW,CACnC,0CAA0C,EAC1C;gBACE,UAAU,EAAE,kBAAkB;aAC/B,CACF,CAAC;SACH;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe,CAAC,WAAmB;QACvC,IAAI,CAAC,kBAAkB,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CACtD,CAAC,gBAAgB,EAAE,EAAE,CAAC,gBAAgB,CAAC,MAAM,EAAE,QAAQ,KAAK,WAAW,CACxE,CAAC;QACF,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;IACtC,CAAC;CACF;AAtGD,8CAsGC"}