@push.rocks/smartbrowser 2.0.11 → 4.0.0

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.
@@ -0,0 +1,49 @@
1
+ {
2
+ "@git.zone/cli": {
3
+ "schemaVersion": 2,
4
+ "projectType": "npm",
5
+ "module": {
6
+ "githost": "code.foss.global",
7
+ "gitscope": "push.rocks",
8
+ "gitrepo": "smartbrowser",
9
+ "description": "A simplified Puppeteer wrapper for easy automation and testing tasks.",
10
+ "npmPackagename": "@push.rocks/smartbrowser",
11
+ "license": "MIT",
12
+ "keywords": [
13
+ "puppeteer",
14
+ "automation",
15
+ "testing",
16
+ "pdf generation",
17
+ "screenshot",
18
+ "web scraping",
19
+ "browser automation"
20
+ ]
21
+ },
22
+ "release": {
23
+ "targets": {
24
+ "git": {
25
+ "enabled": true,
26
+ "remote": "origin",
27
+ "pushBranch": true,
28
+ "pushTags": true
29
+ },
30
+ "npm": {
31
+ "enabled": true,
32
+ "registries": [
33
+ "https://verdaccio.lossless.digital",
34
+ "https://registry.npmjs.org"
35
+ ],
36
+ "accessLevel": "public",
37
+ "alreadyPublished": "success"
38
+ }
39
+ }
40
+ }
41
+ },
42
+ "@git.zone/tsdoc": {
43
+ "legal": "\n## License and Legal Information\n\nThis repository contains open-source code licensed under the MIT License. A copy of the license can be found in the [license](license.md) file.\n\n**Please note:** The MIT License does not grant permission to use the trade names, trademarks, service marks, or product names of the project, except as required for reasonable and customary use in describing the origin of the work and reproducing the content of the NOTICE file.\n\n### Trademarks\n\nThis project is owned and maintained by Task Venture Capital GmbH. The names and logos associated with Task Venture Capital GmbH and any related products or services are trademarks of Task Venture Capital GmbH or third parties, and are not included within the scope of the MIT license granted herein.\n\nUse of these trademarks must comply with Task Venture Capital GmbH's Trademark Guidelines or the guidelines of the respective third-party owners, and any usage must be approved in writing. Third-party trademarks used herein are the property of their respective owners and used only in a descriptive manner, e.g. for an implementation of an API or similar.\n\n### Company Information\n\nTask Venture Capital GmbH<br>\nRegistered at District Court Bremen HRB 35230 HB, Germany\n\nFor any legal inquiries or further information, please contact us via email at hello@task.vc.\n\nBy using this repository, you acknowledge that you have read this section, agree to comply with its terms, and understand that the licensing of the code does not imply endorsement by Task Venture Capital GmbH of any derivative works.\n"
44
+ },
45
+ "@ship.zone/szci": {
46
+ "npmGlobalTools": [],
47
+ "npmRegistryUrl": "registry.npmjs.org"
48
+ }
49
+ }
@@ -3,7 +3,7 @@
3
3
  */
4
4
  export const commitinfo = {
5
5
  name: '@push.rocks/smartbrowser',
6
- version: '2.0.11',
6
+ version: '4.0.0',
7
7
  description: 'A simplified Puppeteer wrapper for easy automation and testing tasks.'
8
8
  };
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSwwQkFBMEI7SUFDaEMsT0FBTyxFQUFFLFFBQVE7SUFDakIsV0FBVyxFQUFFLHVFQUF1RTtDQUNyRixDQUFBIn0=
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHMvMDBfY29tbWl0aW5mb19kYXRhLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHO0lBQ3hCLElBQUksRUFBRSwwQkFBMEI7SUFDaEMsT0FBTyxFQUFFLE9BQU87SUFDaEIsV0FBVyxFQUFFLHVFQUF1RTtDQUNyRixDQUFBIn0=
@@ -5,7 +5,7 @@ import * as interfaces from './interfaces/index.js';
5
5
  */
6
6
  export declare class SmartBrowser {
7
7
  headlessBrowser: plugins.smartpuppeteer.puppeteer.Browser;
8
- smartpdf: plugins.smartpdf.SmartPdf;
8
+ smartpdf: plugins.smartpdf.SmartPdf | null;
9
9
  /**
10
10
  * start the SmartBrowser instance
11
11
  */
package/dist_ts/index.js CHANGED
@@ -4,6 +4,9 @@ import * as interfaces from './interfaces/index.js';
4
4
  * SmartBrowser
5
5
  */
6
6
  export class SmartBrowser {
7
+ constructor() {
8
+ this.smartpdf = null;
9
+ }
7
10
  /**
8
11
  * start the SmartBrowser instance
9
12
  */
@@ -19,6 +22,7 @@ export class SmartBrowser {
19
22
  this.smartpdf = new plugins.smartpdf.SmartPdf();
20
23
  await this.smartpdf.start(this.headlessBrowser);
21
24
  }
25
+ return this.smartpdf;
22
26
  }
23
27
  /**
24
28
  * stop the SmartBrowser instance
@@ -35,8 +39,8 @@ export class SmartBrowser {
35
39
  * @param urlArg
36
40
  */
37
41
  async pdfFromPage(urlArg) {
38
- await this.ensureSmartPdf();
39
- const result = await this.smartpdf.getFullWebsiteAsSinglePdf(urlArg);
42
+ const smartpdf = await this.ensureSmartPdf();
43
+ const result = await smartpdf.getFullWebsiteAsSinglePdf(urlArg);
40
44
  return result;
41
45
  }
42
46
  /**
@@ -84,4 +88,4 @@ export class SmartBrowser {
84
88
  }
85
89
  import { smartpuppeteer } from './smartbrowser.plugins.js';
86
90
  export { smartpuppeteer };
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLDJCQUEyQixDQUFDO0FBRXJELE9BQU8sS0FBSyxVQUFVLE1BQU0sdUJBQXVCLENBQUM7QUFFcEQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sWUFBWTtJQUl2Qjs7T0FFRztJQUNJLEtBQUssQ0FBQyxLQUFLO1FBQ2hCLElBQUksQ0FBQyxlQUFlLEdBQUcsTUFBTSxPQUFPLENBQUMsY0FBYyxDQUFDLDBCQUEwQixFQUFFLENBQUM7UUFDakYsZ0VBQWdFO0lBQ2xFLENBQUM7SUFFRDs7T0FFRztJQUNLLEtBQUssQ0FBQyxjQUFjO1FBQzFCLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEQsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDbEQsQ0FBQztJQUNILENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxJQUFJO1FBQ2YsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbEIsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLENBQUM7UUFDRCxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVEOzs7T0FHRztJQUNJLEtBQUssQ0FBQyxXQUFXLENBQUMsTUFBYztRQUNyQyxNQUFNLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUM1QixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMseUJBQXlCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDckUsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztJQUVEOzs7T0FHRztJQUNJLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxNQUFjO1FBQzVDLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDN0MsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2xELE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDdEIsU0FBUyxFQUFFLGNBQWM7U0FDMUIsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLElBQUksQ0FBQyxVQUFVLENBQUM7WUFDN0MsUUFBUSxFQUFFLFFBQVE7U0FDbkIsQ0FBQyxDQUFDO1FBQ0gsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDdkQsTUFBTSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbkIsT0FBTztZQUNMLElBQUksRUFBRSxNQUFNO1lBQ1osRUFBRSxFQUFFLEdBQUcsTUFBTSxLQUFLO1lBQ2xCLE1BQU0sRUFBRSxnQkFBZ0I7U0FDekIsQ0FBQztJQUNKLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksS0FBSyxDQUFDLGNBQWMsQ0FBSSxNQUFjLEVBQUUsT0FBeUI7UUFDdEUsTUFBTSxJQUFJLEdBQUcsTUFBTSxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2xELElBQUksQ0FBQztZQUNILE1BQU0sSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUU7Z0JBQ3RCLFNBQVMsRUFBRSxjQUFjO2FBQzFCLENBQUMsQ0FBQztZQUNILE1BQU0sTUFBTSxHQUFHLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM1QyxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO2dCQUFTLENBQUM7WUFDVCxJQUFJLENBQUM7Z0JBQUMsTUFBTSxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFBQyxDQUFDO1lBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLGdDQUFnQyxDQUFDLENBQUM7UUFDNUUsQ0FBQztJQUNILENBQUM7Q0FDRjtBQUVELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsY0FBYyxFQUFFLENBQUMifQ==
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi90cy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssT0FBTyxNQUFNLDJCQUEyQixDQUFDO0FBRXJELE9BQU8sS0FBSyxVQUFVLE1BQU0sdUJBQXVCLENBQUM7QUFFcEQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sWUFBWTtJQUF6QjtRQUVTLGFBQVEsR0FBcUMsSUFBSSxDQUFDO0lBaUYzRCxDQUFDO0lBL0VDOztPQUVHO0lBQ0ksS0FBSyxDQUFDLEtBQUs7UUFDaEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxNQUFNLE9BQU8sQ0FBQyxjQUFjLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztRQUNqRixnRUFBZ0U7SUFDbEUsQ0FBQztJQUVEOztPQUVHO0lBQ0ssS0FBSyxDQUFDLGNBQWM7UUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNoRCxNQUFNLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNsRCxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxJQUFJO1FBQ2YsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbEIsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQ3ZCLENBQUM7UUFDRCxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDckMsQ0FBQztJQUVEOzs7T0FHRztJQUNJLEtBQUssQ0FBQyxXQUFXLENBQUMsTUFBYztRQUNyQyxNQUFNLFFBQVEsR0FBRyxNQUFNLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUM3QyxNQUFNLE1BQU0sR0FBRyxNQUFNLFFBQVEsQ0FBQyx5QkFBeUIsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNoRSxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksS0FBSyxDQUFDLGtCQUFrQixDQUFDLE1BQWM7UUFDNUMsTUFBTSxNQUFNLEdBQUcsT0FBTyxDQUFDLFdBQVcsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUM3QyxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDbEQsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUN0QixTQUFTLEVBQUUsY0FBYztTQUMxQixDQUFDLENBQUM7UUFDSCxNQUFNLGdCQUFnQixHQUFHLE1BQU0sSUFBSSxDQUFDLFVBQVUsQ0FBQztZQUM3QyxRQUFRLEVBQUUsUUFBUTtTQUNuQixDQUFDLENBQUM7UUFDSCxNQUFNLGdCQUFnQixHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUN2RCxNQUFNLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNuQixPQUFPO1lBQ0wsSUFBSSxFQUFFLE1BQU07WUFDWixFQUFFLEVBQUUsR0FBRyxNQUFNLEtBQUs7WUFDbEIsTUFBTSxFQUFFLGdCQUFnQjtTQUN6QixDQUFDO0lBQ0osQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxLQUFLLENBQUMsY0FBYyxDQUFJLE1BQWMsRUFBRSxPQUF5QjtRQUN0RSxNQUFNLElBQUksR0FBRyxNQUFNLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDbEQsSUFBSSxDQUFDO1lBQ0gsTUFBTSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDdEIsU0FBUyxFQUFFLGNBQWM7YUFDMUIsQ0FBQyxDQUFDO1lBQ0gsTUFBTSxNQUFNLEdBQUcsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzVDLE9BQU8sTUFBTSxDQUFDO1FBQ2hCLENBQUM7Z0JBQVMsQ0FBQztZQUNULElBQUksQ0FBQztnQkFBQyxNQUFNLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUFDLENBQUM7WUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztRQUM1RSxDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBRUQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsQ0FBQyJ9
@@ -0,0 +1,8 @@
1
+ /**
2
+ * autocreated commitinfo by @push.rocks/commitinfo
3
+ */
4
+ export declare const commitinfo: {
5
+ name: string;
6
+ version: string;
7
+ description: string;
8
+ };
@@ -0,0 +1,9 @@
1
+ /**
2
+ * autocreated commitinfo by @push.rocks/commitinfo
3
+ */
4
+ export const commitinfo = {
5
+ name: '@push.rocks/smartbrowser',
6
+ version: '4.0.0',
7
+ description: 'A simplified Puppeteer wrapper for easy automation and testing tasks.'
8
+ };
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiMDBfY29tbWl0aW5mb19kYXRhLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vdHNfd2ViLzAwX2NvbW1pdGluZm9fZGF0YS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRztJQUN4QixJQUFJLEVBQUUsMEJBQTBCO0lBQ2hDLE9BQU8sRUFBRSxPQUFPO0lBQ2hCLFdBQVcsRUFBRSx1RUFBdUU7Q0FDckYsQ0FBQSJ9
@@ -0,0 +1,134 @@
1
+ import type { ILiveBrowserCanvasRendererOptions } from './interfaces.livebrowsercanvas.js';
2
+ /**
3
+ * Renders transport-neutral live browser frames and maps DOM input back to the
4
+ * currently displayed SmartPuppeteer frame identity.
5
+ */
6
+ export declare class LiveBrowserCanvasRenderer {
7
+ private readonly canvas;
8
+ private readonly canvasContext;
9
+ private readonly client;
10
+ private readonly focusTarget;
11
+ private readonly resizeTarget?;
12
+ private readonly getDeviceScaleFactor;
13
+ private readonly operationTimeoutMs;
14
+ private readonly frameDecodeTimeoutMs;
15
+ private readonly onError?;
16
+ private readonly onFrameRendered?;
17
+ private readonly initialCanvasWidth;
18
+ private readonly initialCanvasHeight;
19
+ private lifecycleTail;
20
+ private runEpoch;
21
+ private running;
22
+ private suspended;
23
+ private stopping;
24
+ private interruptionRequested;
25
+ private runController?;
26
+ private operationControllers;
27
+ private acceptingFrames;
28
+ private state?;
29
+ private unsubscribe?;
30
+ private listenerController?;
31
+ private resizeObserver?;
32
+ private focusWasAdjusted;
33
+ private focusHadTabIndex;
34
+ private focusTabIndexValue;
35
+ private displayedFrame?;
36
+ private highestFrameSequence;
37
+ private queuedFrame?;
38
+ private frameProcessingPromise?;
39
+ private acknowledgementPromises;
40
+ private rawDecodeSettlementPromises;
41
+ private inputBlocked;
42
+ private inputCommands;
43
+ private inputProcessing;
44
+ private inputIdleResolvers;
45
+ private inputResetTail;
46
+ private inputResetPromise?;
47
+ private inputResetCount;
48
+ private inputOverflowRecoveryPending;
49
+ private pressedKeys;
50
+ private pressedMouseButtons;
51
+ private capturedPointerIds;
52
+ private pendingViewport?;
53
+ private inFlightViewport?;
54
+ private viewportProcessing;
55
+ private viewportProcessingPromise?;
56
+ private resizeFence?;
57
+ constructor(optionsArg: ILiveBrowserCanvasRendererOptions);
58
+ get isRunning(): boolean;
59
+ get isSuspended(): boolean;
60
+ start(): Promise<void>;
61
+ stop(): Promise<void>;
62
+ /**
63
+ * Aborts the current transport generation without replaying input recovery.
64
+ */
65
+ suspend(): Promise<void>;
66
+ /**
67
+ * Starts a new transport generation that requires new state and a new frame.
68
+ */
69
+ resume(): Promise<void>;
70
+ /**
71
+ * Sends arbitrary committed text, including text produced by an external IME.
72
+ */
73
+ insertText(textArg: string): Promise<void>;
74
+ /**
75
+ * Reads the configured stable resize target and requests the corresponding
76
+ * remote CSS viewport. Intrinsic canvas dimensions are never used here.
77
+ */
78
+ syncViewport(): void;
79
+ private enqueueLifecycle;
80
+ private startRun;
81
+ private interruptRun;
82
+ private finishRun;
83
+ private restoreCanvasAndFocus;
84
+ private installDomListeners;
85
+ private installResizeObserver;
86
+ private handleEvent;
87
+ private applyState;
88
+ private isStateAheadOfDisplayedFrame;
89
+ private queueFrame;
90
+ private ensureFrameProcessor;
91
+ private processFrameQueue;
92
+ private processFrame;
93
+ private canRenderFrame;
94
+ private acknowledgeFrame;
95
+ private handlePointerDown;
96
+ private handlePointerMove;
97
+ private handlePointerUp;
98
+ private handleWheel;
99
+ private handleKey;
100
+ private mapCoordinates;
101
+ private getMouseButton;
102
+ private getInputFrame;
103
+ private requireInputFrame;
104
+ private isDisplayedFrameCurrent;
105
+ private enqueueInputCommand;
106
+ private processInputCommands;
107
+ private waitForInputIdle;
108
+ private scheduleInputReset;
109
+ private recoverFromInputOverflow;
110
+ private releasePressedInput;
111
+ private tryInputRelease;
112
+ private reportInputReleaseError;
113
+ private queueViewport;
114
+ private ensureViewportProcessor;
115
+ private processViewportQueue;
116
+ private updateInputAvailability;
117
+ private makeFocusTargetFocusable;
118
+ private restoreFocusTarget;
119
+ private clearCanvas;
120
+ private callFrameRendered;
121
+ private reportError;
122
+ private requestSuspend;
123
+ private validateTimeout;
124
+ private runClientOperation;
125
+ private runAbortableOperation;
126
+ private decodeFrame;
127
+ private isRunActive;
128
+ private validateFrame;
129
+ private validateViewport;
130
+ private validateProtocolInteger;
131
+ private validateProtocolNumber;
132
+ private releasePointerCapture;
133
+ private releasePointerCaptures;
134
+ }