@xiuchang-midscene/shared 2.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +9 -0
- package/dist/es/baseDB.mjs +109 -0
- package/dist/es/baseDB.mjs.bak +109 -0
- package/dist/es/build/copy-static.mjs +31 -0
- package/dist/es/build/copy-static.mjs.bak +31 -0
- package/dist/es/build/rspack-config.mjs +4 -0
- package/dist/es/build/rspack-config.mjs.bak +4 -0
- package/dist/es/cli/cli-runner.mjs +140 -0
- package/dist/es/cli/cli-runner.mjs.bak +140 -0
- package/dist/es/cli/index.mjs +2 -0
- package/dist/es/cli/index.mjs.bak +2 -0
- package/dist/es/common.mjs +37 -0
- package/dist/es/common.mjs.bak +37 -0
- package/dist/es/constants/example-code.mjs +223 -0
- package/dist/es/constants/example-code.mjs.bak +223 -0
- package/dist/es/constants/index.mjs +23 -0
- package/dist/es/constants/index.mjs.bak +23 -0
- package/dist/es/env/basic.mjs +6 -0
- package/dist/es/env/basic.mjs.bak +6 -0
- package/dist/es/env/constants.mjs +70 -0
- package/dist/es/env/constants.mjs.bak +70 -0
- package/dist/es/env/global-config-manager.mjs +94 -0
- package/dist/es/env/global-config-manager.mjs.bak +94 -0
- package/dist/es/env/helper.mjs +43 -0
- package/dist/es/env/helper.mjs.bak +43 -0
- package/dist/es/env/index.mjs +5 -0
- package/dist/es/env/index.mjs.bak +5 -0
- package/dist/es/env/init-debug.mjs +18 -0
- package/dist/es/env/init-debug.mjs.bak +18 -0
- package/dist/es/env/model-config-manager.mjs +79 -0
- package/dist/es/env/model-config-manager.mjs.bak +79 -0
- package/dist/es/env/parse-model-config.mjs +132 -0
- package/dist/es/env/parse-model-config.mjs.bak +132 -0
- package/dist/es/env/types.mjs +220 -0
- package/dist/es/env/types.mjs.bak +220 -0
- package/dist/es/env/utils.mjs +26 -0
- package/dist/es/env/utils.mjs.bak +26 -0
- package/dist/es/extractor/constants.mjs +2 -0
- package/dist/es/extractor/constants.mjs.bak +2 -0
- package/dist/es/extractor/debug.mjs +6 -0
- package/dist/es/extractor/debug.mjs.bak +6 -0
- package/dist/es/extractor/dom-util.mjs +92 -0
- package/dist/es/extractor/dom-util.mjs.bak +92 -0
- package/dist/es/extractor/index.mjs +5 -0
- package/dist/es/extractor/index.mjs.bak +5 -0
- package/dist/es/extractor/locator.mjs +250 -0
- package/dist/es/extractor/locator.mjs.bak +250 -0
- package/dist/es/extractor/tree.mjs +78 -0
- package/dist/es/extractor/tree.mjs.bak +78 -0
- package/dist/es/extractor/util.mjs +245 -0
- package/dist/es/extractor/util.mjs.bak +245 -0
- package/dist/es/extractor/web-extractor.mjs +303 -0
- package/dist/es/extractor/web-extractor.mjs.bak +303 -0
- package/dist/es/img/box-select.mjs +824 -0
- package/dist/es/img/box-select.mjs.bak +824 -0
- package/dist/es/img/canvas-fallback.mjs +238 -0
- package/dist/es/img/canvas-fallback.mjs.bak +238 -0
- package/dist/es/img/get-photon.mjs +45 -0
- package/dist/es/img/get-photon.mjs.bak +45 -0
- package/dist/es/img/get-sharp.mjs +11 -0
- package/dist/es/img/get-sharp.mjs.bak +11 -0
- package/dist/es/img/index.mjs +4 -0
- package/dist/es/img/index.mjs.bak +4 -0
- package/dist/es/img/info.mjs +29 -0
- package/dist/es/img/info.mjs.bak +29 -0
- package/dist/es/img/transform.mjs +295 -0
- package/dist/es/img/transform.mjs.bak +295 -0
- package/dist/es/index.mjs +4 -0
- package/dist/es/index.mjs.bak +4 -0
- package/dist/es/logger.mjs +64 -0
- package/dist/es/logger.mjs.bak +64 -0
- package/dist/es/mcp/base-server.mjs +281 -0
- package/dist/es/mcp/base-server.mjs.bak +281 -0
- package/dist/es/mcp/base-tools.mjs +91 -0
- package/dist/es/mcp/base-tools.mjs.bak +91 -0
- package/dist/es/mcp/chrome-path.mjs +35 -0
- package/dist/es/mcp/chrome-path.mjs.bak +35 -0
- package/dist/es/mcp/index.mjs +7 -0
- package/dist/es/mcp/index.mjs.bak +7 -0
- package/dist/es/mcp/inject-report-html-plugin.mjs +53 -0
- package/dist/es/mcp/inject-report-html-plugin.mjs.bak +53 -0
- package/dist/es/mcp/launcher-helper.mjs +52 -0
- package/dist/es/mcp/launcher-helper.mjs.bak +52 -0
- package/dist/es/mcp/tool-generator.mjs +297 -0
- package/dist/es/mcp/tool-generator.mjs.bak +297 -0
- package/dist/es/mcp/types.mjs +3 -0
- package/dist/es/mcp/types.mjs.bak +3 -0
- package/dist/es/node/fs.mjs +44 -0
- package/dist/es/node/fs.mjs.bak +44 -0
- package/dist/es/node/index.mjs +2 -0
- package/dist/es/node/index.mjs.bak +2 -0
- package/dist/es/node/port.mjs +24 -0
- package/dist/es/node/port.mjs.bak +24 -0
- package/dist/es/oss/demo.mjs +30 -0
- package/dist/es/oss/demo.mjs.bak +30 -0
- package/dist/es/oss/index.mjs +90 -0
- package/dist/es/oss/index.mjs.bak +90 -0
- package/dist/es/polyfills/async-hooks.mjs +2 -0
- package/dist/es/polyfills/async-hooks.mjs.bak +2 -0
- package/dist/es/polyfills/index.mjs +1 -0
- package/dist/es/polyfills/index.mjs.bak +1 -0
- package/dist/es/types/index.mjs +3 -0
- package/dist/es/types/index.mjs.bak +3 -0
- package/dist/es/us-keyboard-layout.mjs +1414 -0
- package/dist/es/us-keyboard-layout.mjs.LICENSE.txt +5 -0
- package/dist/es/us-keyboard-layout.mjs.bak +1414 -0
- package/dist/es/utils.mjs +72 -0
- package/dist/es/utils.mjs.bak +72 -0
- package/dist/es/zod-schema-utils.mjs +54 -0
- package/dist/es/zod-schema-utils.mjs.bak +54 -0
- package/dist/lib/baseDB.js +149 -0
- package/dist/lib/baseDB.js.bak +149 -0
- package/dist/lib/build/copy-static.js +79 -0
- package/dist/lib/build/copy-static.js.bak +79 -0
- package/dist/lib/build/rspack-config.js +38 -0
- package/dist/lib/build/rspack-config.js.bak +38 -0
- package/dist/lib/cli/cli-runner.js +196 -0
- package/dist/lib/cli/cli-runner.js.bak +196 -0
- package/dist/lib/cli/index.js +48 -0
- package/dist/lib/cli/index.js.bak +48 -0
- package/dist/lib/common.js +93 -0
- package/dist/lib/common.js.bak +93 -0
- package/dist/lib/constants/example-code.js +260 -0
- package/dist/lib/constants/example-code.js.bak +260 -0
- package/dist/lib/constants/index.js +96 -0
- package/dist/lib/constants/index.js.bak +96 -0
- package/dist/lib/env/basic.js +40 -0
- package/dist/lib/env/basic.js.bak +40 -0
- package/dist/lib/env/constants.js +113 -0
- package/dist/lib/env/constants.js.bak +113 -0
- package/dist/lib/env/global-config-manager.js +128 -0
- package/dist/lib/env/global-config-manager.js.bak +128 -0
- package/dist/lib/env/helper.js +80 -0
- package/dist/lib/env/helper.js.bak +80 -0
- package/dist/lib/env/index.js +90 -0
- package/dist/lib/env/index.js.bak +90 -0
- package/dist/lib/env/init-debug.js +52 -0
- package/dist/lib/env/init-debug.js.bak +52 -0
- package/dist/lib/env/model-config-manager.js +113 -0
- package/dist/lib/env/model-config-manager.js.bak +113 -0
- package/dist/lib/env/parse-model-config.js +178 -0
- package/dist/lib/env/parse-model-config.js.bak +178 -0
- package/dist/lib/env/types.js +554 -0
- package/dist/lib/env/types.js.bak +554 -0
- package/dist/lib/env/utils.js +72 -0
- package/dist/lib/env/utils.js.bak +72 -0
- package/dist/lib/extractor/constants.js +42 -0
- package/dist/lib/extractor/constants.js.bak +42 -0
- package/dist/lib/extractor/debug.js +12 -0
- package/dist/lib/extractor/debug.js.bak +12 -0
- package/dist/lib/extractor/dom-util.js +153 -0
- package/dist/lib/extractor/dom-util.js.bak +153 -0
- package/dist/lib/extractor/index.js +81 -0
- package/dist/lib/extractor/index.js.bak +81 -0
- package/dist/lib/extractor/locator.js +296 -0
- package/dist/lib/extractor/locator.js.bak +296 -0
- package/dist/lib/extractor/tree.js +124 -0
- package/dist/lib/extractor/tree.js.bak +124 -0
- package/dist/lib/extractor/util.js +336 -0
- package/dist/lib/extractor/util.js.bak +336 -0
- package/dist/lib/extractor/web-extractor.js +349 -0
- package/dist/lib/extractor/web-extractor.js.bak +349 -0
- package/dist/lib/img/box-select.js +875 -0
- package/dist/lib/img/box-select.js.bak +875 -0
- package/dist/lib/img/canvas-fallback.js +305 -0
- package/dist/lib/img/canvas-fallback.js.bak +305 -0
- package/dist/lib/img/get-photon.js +82 -0
- package/dist/lib/img/get-photon.js.bak +82 -0
- package/dist/lib/img/get-sharp.js +45 -0
- package/dist/lib/img/get-sharp.js.bak +45 -0
- package/dist/lib/img/index.js +95 -0
- package/dist/lib/img/index.js.bak +95 -0
- package/dist/lib/img/info.js +83 -0
- package/dist/lib/img/info.js.bak +83 -0
- package/dist/lib/img/transform.js +387 -0
- package/dist/lib/img/transform.js.bak +387 -0
- package/dist/lib/index.js +47 -0
- package/dist/lib/index.js.bak +47 -0
- package/dist/lib/logger.js +114 -0
- package/dist/lib/logger.js.bak +114 -0
- package/dist/lib/mcp/base-server.js +331 -0
- package/dist/lib/mcp/base-server.js.bak +331 -0
- package/dist/lib/mcp/base-tools.js +125 -0
- package/dist/lib/mcp/base-tools.js.bak +125 -0
- package/dist/lib/mcp/chrome-path.js +72 -0
- package/dist/lib/mcp/chrome-path.js.bak +72 -0
- package/dist/lib/mcp/index.js +100 -0
- package/dist/lib/mcp/index.js.bak +100 -0
- package/dist/lib/mcp/inject-report-html-plugin.js +98 -0
- package/dist/lib/mcp/inject-report-html-plugin.js.bak +98 -0
- package/dist/lib/mcp/launcher-helper.js +86 -0
- package/dist/lib/mcp/launcher-helper.js.bak +86 -0
- package/dist/lib/mcp/tool-generator.js +334 -0
- package/dist/lib/mcp/tool-generator.js.bak +334 -0
- package/dist/lib/mcp/types.js +40 -0
- package/dist/lib/mcp/types.js.bak +40 -0
- package/dist/lib/node/fs.js +97 -0
- package/dist/lib/node/fs.js.bak +97 -0
- package/dist/lib/node/index.js +65 -0
- package/dist/lib/node/index.js.bak +65 -0
- package/dist/lib/node/port.js +61 -0
- package/dist/lib/node/port.js.bak +61 -0
- package/dist/lib/oss/demo.js +36 -0
- package/dist/lib/oss/demo.js.bak +36 -0
- package/dist/lib/oss/index.js +138 -0
- package/dist/lib/oss/index.js.bak +138 -0
- package/dist/lib/polyfills/async-hooks.js +36 -0
- package/dist/lib/polyfills/async-hooks.js.bak +36 -0
- package/dist/lib/polyfills/index.js +58 -0
- package/dist/lib/polyfills/index.js.bak +58 -0
- package/dist/lib/types/index.js +37 -0
- package/dist/lib/types/index.js.bak +37 -0
- package/dist/lib/us-keyboard-layout.js +1457 -0
- package/dist/lib/us-keyboard-layout.js.LICENSE.txt +5 -0
- package/dist/lib/us-keyboard-layout.js.bak +1457 -0
- package/dist/lib/utils.js +148 -0
- package/dist/lib/utils.js.bak +148 -0
- package/dist/lib/zod-schema-utils.js +97 -0
- package/dist/lib/zod-schema-utils.js.bak +97 -0
- package/dist/types/baseDB.d.ts +25 -0
- package/dist/types/baseDB.d.ts.bak +25 -0
- package/dist/types/build/copy-static.d.ts +31 -0
- package/dist/types/build/copy-static.d.ts.bak +31 -0
- package/dist/types/build/rspack-config.d.ts +8 -0
- package/dist/types/build/rspack-config.d.ts.bak +8 -0
- package/dist/types/cli/cli-runner.d.ts +14 -0
- package/dist/types/cli/cli-runner.d.ts.bak +14 -0
- package/dist/types/cli/index.d.ts +2 -0
- package/dist/types/cli/index.d.ts.bak +2 -0
- package/dist/types/common.d.ts +12 -0
- package/dist/types/common.d.ts.bak +12 -0
- package/dist/types/constants/example-code.d.ts +2 -0
- package/dist/types/constants/example-code.d.ts.bak +2 -0
- package/dist/types/constants/index.d.ts +21 -0
- package/dist/types/constants/index.d.ts.bak +21 -0
- package/dist/types/env/basic.d.ts +6 -0
- package/dist/types/env/basic.d.ts.bak +6 -0
- package/dist/types/env/constants.d.ts +40 -0
- package/dist/types/env/constants.d.ts.bak +40 -0
- package/dist/types/env/global-config-manager.d.ts +32 -0
- package/dist/types/env/global-config-manager.d.ts.bak +32 -0
- package/dist/types/env/helper.d.ts +4 -0
- package/dist/types/env/helper.d.ts.bak +4 -0
- package/dist/types/env/index.d.ts +4 -0
- package/dist/types/env/index.d.ts.bak +4 -0
- package/dist/types/env/init-debug.d.ts +1 -0
- package/dist/types/env/init-debug.d.ts.bak +1 -0
- package/dist/types/env/model-config-manager.d.ts +25 -0
- package/dist/types/env/model-config-manager.d.ts.bak +25 -0
- package/dist/types/env/parse-model-config.d.ts +31 -0
- package/dist/types/env/parse-model-config.d.ts.bak +31 -0
- package/dist/types/env/types.d.ts +318 -0
- package/dist/types/env/types.d.ts.bak +318 -0
- package/dist/types/env/utils.d.ts +38 -0
- package/dist/types/env/utils.d.ts.bak +38 -0
- package/dist/types/extractor/constants.d.ts +1 -0
- package/dist/types/extractor/constants.d.ts.bak +1 -0
- package/dist/types/extractor/debug.d.ts +1 -0
- package/dist/types/extractor/debug.d.ts.bak +1 -0
- package/dist/types/extractor/dom-util.d.ts +56 -0
- package/dist/types/extractor/dom-util.d.ts.bak +56 -0
- package/dist/types/extractor/index.d.ts +32 -0
- package/dist/types/extractor/index.d.ts.bak +32 -0
- package/dist/types/extractor/locator.d.ts +9 -0
- package/dist/types/extractor/locator.d.ts.bak +9 -0
- package/dist/types/extractor/tree.d.ts +6 -0
- package/dist/types/extractor/tree.d.ts.bak +6 -0
- package/dist/types/extractor/util.d.ts +47 -0
- package/dist/types/extractor/util.d.ts.bak +47 -0
- package/dist/types/extractor/web-extractor.d.ts +19 -0
- package/dist/types/extractor/web-extractor.d.ts.bak +19 -0
- package/dist/types/img/box-select.d.ts +26 -0
- package/dist/types/img/box-select.d.ts.bak +26 -0
- package/dist/types/img/canvas-fallback.d.ts +105 -0
- package/dist/types/img/canvas-fallback.d.ts.bak +105 -0
- package/dist/types/img/get-photon.d.ts +19 -0
- package/dist/types/img/get-photon.d.ts.bak +19 -0
- package/dist/types/img/get-sharp.d.ts +3 -0
- package/dist/types/img/get-sharp.d.ts.bak +3 -0
- package/dist/types/img/index.d.ts +3 -0
- package/dist/types/img/index.d.ts.bak +3 -0
- package/dist/types/img/info.d.ts +29 -0
- package/dist/types/img/info.d.ts.bak +29 -0
- package/dist/types/img/transform.d.ts +107 -0
- package/dist/types/img/transform.d.ts.bak +107 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.d.ts.bak +4 -0
- package/dist/types/logger.d.ts +5 -0
- package/dist/types/logger.d.ts.bak +5 -0
- package/dist/types/mcp/base-server.d.ts +93 -0
- package/dist/types/mcp/base-server.d.ts.bak +93 -0
- package/dist/types/mcp/base-tools.d.ts +79 -0
- package/dist/types/mcp/base-tools.d.ts.bak +79 -0
- package/dist/types/mcp/chrome-path.d.ts +2 -0
- package/dist/types/mcp/chrome-path.d.ts.bak +2 -0
- package/dist/types/mcp/index.d.ts +7 -0
- package/dist/types/mcp/index.d.ts.bak +7 -0
- package/dist/types/mcp/inject-report-html-plugin.d.ts +18 -0
- package/dist/types/mcp/inject-report-html-plugin.d.ts.bak +18 -0
- package/dist/types/mcp/launcher-helper.d.ts +94 -0
- package/dist/types/mcp/launcher-helper.d.ts.bak +94 -0
- package/dist/types/mcp/tool-generator.d.ts +10 -0
- package/dist/types/mcp/tool-generator.d.ts.bak +10 -0
- package/dist/types/mcp/types.d.ts +103 -0
- package/dist/types/mcp/types.d.ts.bak +103 -0
- package/dist/types/node/fs.d.ts +15 -0
- package/dist/types/node/fs.d.ts.bak +15 -0
- package/dist/types/node/index.d.ts +2 -0
- package/dist/types/node/index.d.ts.bak +2 -0
- package/dist/types/node/port.d.ts +8 -0
- package/dist/types/node/port.d.ts.bak +8 -0
- package/dist/types/oss/demo.d.ts +1 -0
- package/dist/types/oss/demo.d.ts.bak +1 -0
- package/dist/types/oss/index.d.ts +34 -0
- package/dist/types/oss/index.d.ts.bak +34 -0
- package/dist/types/polyfills/async-hooks.d.ts +6 -0
- package/dist/types/polyfills/async-hooks.d.ts.bak +6 -0
- package/dist/types/polyfills/index.d.ts +4 -0
- package/dist/types/polyfills/index.d.ts.bak +4 -0
- package/dist/types/types/index.d.ts +34 -0
- package/dist/types/types/index.d.ts.bak +34 -0
- package/dist/types/us-keyboard-layout.d.ts +32 -0
- package/dist/types/us-keyboard-layout.d.ts.bak +32 -0
- package/dist/types/utils.d.ts +34 -0
- package/dist/types/utils.d.ts.bak +34 -0
- package/dist/types/zod-schema-utils.d.ts +23 -0
- package/dist/types/zod-schema-utils.d.ts.bak +23 -0
- package/package.json +132 -0
- package/src/baseDB.ts +158 -0
- package/src/build/copy-static.ts +68 -0
- package/src/build/rspack-config.ts +12 -0
- package/src/cli/cli-runner.ts +224 -0
- package/src/cli/index.ts +8 -0
- package/src/common.ts +67 -0
- package/src/constants/example-code.ts +223 -0
- package/src/constants/index.ts +29 -0
- package/src/env/basic.ts +12 -0
- package/src/env/constants.ts +234 -0
- package/src/env/global-config-manager.ts +191 -0
- package/src/env/helper.ts +58 -0
- package/src/env/index.ts +4 -0
- package/src/env/init-debug.ts +34 -0
- package/src/env/model-config-manager.ts +149 -0
- package/src/env/parse-model-config.ts +294 -0
- package/src/env/types.ts +547 -0
- package/src/env/utils.ts +89 -0
- package/src/extractor/constants.ts +5 -0
- package/src/extractor/debug.ts +10 -0
- package/src/extractor/dom-util.ts +226 -0
- package/src/extractor/index.ts +48 -0
- package/src/extractor/locator.ts +469 -0
- package/src/extractor/tree.ts +179 -0
- package/src/extractor/util.ts +482 -0
- package/src/extractor/web-extractor.ts +481 -0
- package/src/img/box-select.ts +588 -0
- package/src/img/canvas-fallback.ts +393 -0
- package/src/img/get-photon.ts +108 -0
- package/src/img/get-sharp.ts +18 -0
- package/src/img/index.ts +26 -0
- package/src/img/info.ts +75 -0
- package/src/img/transform.ts +594 -0
- package/src/index.ts +8 -0
- package/src/logger.ts +96 -0
- package/src/mcp/base-server.ts +502 -0
- package/src/mcp/base-tools.ts +185 -0
- package/src/mcp/chrome-path.ts +48 -0
- package/src/mcp/index.ts +7 -0
- package/src/mcp/inject-report-html-plugin.ts +119 -0
- package/src/mcp/launcher-helper.ts +200 -0
- package/src/mcp/tool-generator.ts +429 -0
- package/src/mcp/types.ts +112 -0
- package/src/node/fs.ts +84 -0
- package/src/node/index.ts +2 -0
- package/src/node/port.ts +37 -0
- package/src/oss/demo.ts +61 -0
- package/src/oss/index.ts +187 -0
- package/src/polyfills/async-hooks.ts +6 -0
- package/src/polyfills/index.ts +4 -0
- package/src/types/index.ts +52 -0
- package/src/us-keyboard-layout.ts +723 -0
- package/src/utils.ts +149 -0
- package/src/zod-schema-utils.ts +133 -0
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { GlobalConfigManager } from './global-config-manager';
|
|
2
|
+
import { ModelConfigManager } from './model-config-manager';
|
|
3
|
+
import { type GLOBAL_ENV_KEYS, type MODEL_ENV_KEYS } from './types';
|
|
4
|
+
export declare const globalModelConfigManager: ModelConfigManager;
|
|
5
|
+
export declare const globalConfigManager: GlobalConfigManager;
|
|
6
|
+
/**
|
|
7
|
+
* Interface for devices that support getTimestamp method.
|
|
8
|
+
* This is a minimal interface to avoid circular dependencies with @xiuchang-midscene/core.
|
|
9
|
+
*/
|
|
10
|
+
export interface DeviceWithTimestamp {
|
|
11
|
+
getTimestamp?: () => Promise<number>;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Get the current timestamp, optionally from the target device.
|
|
15
|
+
*
|
|
16
|
+
* When useDeviceTimestamp is enabled and a device with getTimestamp is provided,
|
|
17
|
+
* this function will return the device's time. Otherwise, it returns the system time.
|
|
18
|
+
*
|
|
19
|
+
* This is useful when:
|
|
20
|
+
* - Testing on devices with different time zones
|
|
21
|
+
* - Debugging time-sensitive features
|
|
22
|
+
* - The system clock and device clock are not synchronized
|
|
23
|
+
*
|
|
24
|
+
* @param device Optional device interface that supports getTimestamp
|
|
25
|
+
* @param useDeviceTimestamp Whether to use device timestamp (from agent config)
|
|
26
|
+
* @returns Timestamp in milliseconds
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* // Without device - always returns system time
|
|
30
|
+
* const systemTime = await getCurrentTime();
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* // With device and config enabled - returns device time
|
|
34
|
+
* const deviceTime = await getCurrentTime(androidDevice, true);
|
|
35
|
+
*/
|
|
36
|
+
export declare function getCurrentTime(device?: DeviceWithTimestamp, useDeviceTimestamp?: boolean): Promise<number>;
|
|
37
|
+
export declare const getPreferredLanguage: () => string;
|
|
38
|
+
export declare const overrideAIConfig: (newConfig: Partial<Record<(typeof GLOBAL_ENV_KEYS)[number] | (typeof MODEL_ENV_KEYS)[number], string>>, extendMode?: boolean) => void;
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { GlobalConfigManager } from './global-config-manager';
|
|
2
|
+
import { ModelConfigManager } from './model-config-manager';
|
|
3
|
+
import { type GLOBAL_ENV_KEYS, type MODEL_ENV_KEYS } from './types';
|
|
4
|
+
export declare const globalModelConfigManager: ModelConfigManager;
|
|
5
|
+
export declare const globalConfigManager: GlobalConfigManager;
|
|
6
|
+
/**
|
|
7
|
+
* Interface for devices that support getTimestamp method.
|
|
8
|
+
* This is a minimal interface to avoid circular dependencies with @midscene/core.
|
|
9
|
+
*/
|
|
10
|
+
export interface DeviceWithTimestamp {
|
|
11
|
+
getTimestamp?: () => Promise<number>;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Get the current timestamp, optionally from the target device.
|
|
15
|
+
*
|
|
16
|
+
* When useDeviceTimestamp is enabled and a device with getTimestamp is provided,
|
|
17
|
+
* this function will return the device's time. Otherwise, it returns the system time.
|
|
18
|
+
*
|
|
19
|
+
* This is useful when:
|
|
20
|
+
* - Testing on devices with different time zones
|
|
21
|
+
* - Debugging time-sensitive features
|
|
22
|
+
* - The system clock and device clock are not synchronized
|
|
23
|
+
*
|
|
24
|
+
* @param device Optional device interface that supports getTimestamp
|
|
25
|
+
* @param useDeviceTimestamp Whether to use device timestamp (from agent config)
|
|
26
|
+
* @returns Timestamp in milliseconds
|
|
27
|
+
*
|
|
28
|
+
* @example
|
|
29
|
+
* // Without device - always returns system time
|
|
30
|
+
* const systemTime = await getCurrentTime();
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* // With device and config enabled - returns device time
|
|
34
|
+
* const deviceTime = await getCurrentTime(androidDevice, true);
|
|
35
|
+
*/
|
|
36
|
+
export declare function getCurrentTime(device?: DeviceWithTimestamp, useDeviceTimestamp?: boolean): Promise<number>;
|
|
37
|
+
export declare const getPreferredLanguage: () => string;
|
|
38
|
+
export declare const overrideAIConfig: (newConfig: Partial<Record<(typeof GLOBAL_ENV_KEYS)[number] | (typeof MODEL_ENV_KEYS)[number], string>>, extendMode?: boolean) => void;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { NodeType, TEXT_MAX_SIZE, TEXT_SIZE_THRESHOLD, } from '../constants/index';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { NodeType, TEXT_MAX_SIZE, TEXT_SIZE_THRESHOLD, } from '../constants/index';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { LocateResultElement } from '../types';
|
|
2
|
+
export declare function isFormElement(node: globalThis.Node): boolean;
|
|
3
|
+
export declare function isButtonElement(node: globalThis.Node): node is globalThis.HTMLButtonElement;
|
|
4
|
+
export declare function isAElement(node: globalThis.Node): node is globalThis.HTMLButtonElement;
|
|
5
|
+
export declare function isSvgElement(node: globalThis.Node): node is globalThis.SVGSVGElement;
|
|
6
|
+
export declare function isImgElement(node: globalThis.Node): node is globalThis.HTMLImageElement;
|
|
7
|
+
export declare function isNotContainerElement(node: globalThis.Node): boolean;
|
|
8
|
+
export declare function isTextElement(node: globalThis.Node): node is globalThis.HTMLTextAreaElement;
|
|
9
|
+
export declare function isContainerElement(node: globalThis.Node): node is globalThis.HTMLElement;
|
|
10
|
+
/**
|
|
11
|
+
* Generate a LocateResultElement from a point.
|
|
12
|
+
* This function creates an expanded rect around the given center point.
|
|
13
|
+
*
|
|
14
|
+
* Note: Center coordinates should be integers for pixel-aligned positioning.
|
|
15
|
+
* If decimal values are provided, they will be used as-is, which may result in
|
|
16
|
+
* non-pixel-aligned rect positions.
|
|
17
|
+
*
|
|
18
|
+
* The rect positioning behavior:
|
|
19
|
+
* - When edgeSize is even: center is at the top-left of the four center pixels
|
|
20
|
+
* For example, with edgeSize=4 and center=[10, 10]:
|
|
21
|
+
* □□□□
|
|
22
|
+
* □■□□ (■ represents the center point at pixel 10)
|
|
23
|
+
* □□□□
|
|
24
|
+
* □□□□
|
|
25
|
+
*
|
|
26
|
+
* - When edgeSize is odd: center is at the exact middle pixel
|
|
27
|
+
* For example, with edgeSize=5 and center=[10, 10]:
|
|
28
|
+
* □□□□□
|
|
29
|
+
* □□■□□ (■ represents the center point at pixel 10)
|
|
30
|
+
* □□□□□
|
|
31
|
+
*
|
|
32
|
+
* @param center - Center point coordinates as [x, y] (should be integers)
|
|
33
|
+
* @param description - Description of the element
|
|
34
|
+
* @param edgeSize - Size to expand around the center point (default: 8)
|
|
35
|
+
* @returns A LocateResultElement with rect, center, and description
|
|
36
|
+
*/
|
|
37
|
+
export declare function generateElementByPoint(center: [number, number], description: string, edgeSize?: number): LocateResultElement;
|
|
38
|
+
/**
|
|
39
|
+
* Generate a LocateResultElement from a rect.
|
|
40
|
+
* This function calculates the center point from the rect and expands the rect by edgeSize.
|
|
41
|
+
*
|
|
42
|
+
* Note: The rect uses inclusive coordinates where:
|
|
43
|
+
* - A rect from [left=10, top=10] with [width=1, height=1] covers exactly 1 pixel
|
|
44
|
+
* - The actual pixel range is [left, left+width) which means width pixels
|
|
45
|
+
*
|
|
46
|
+
* @param sourceRect - The source rect to generate element from (typically contains integer values)
|
|
47
|
+
* @param description - Description of the element
|
|
48
|
+
* @param edgeSize - Size to expand around the center point (default: 8)
|
|
49
|
+
* @returns A LocateResultElement with rect, center (always integers), and description
|
|
50
|
+
*/
|
|
51
|
+
export declare function generateElementByRect(sourceRect: {
|
|
52
|
+
left: number;
|
|
53
|
+
top: number;
|
|
54
|
+
width: number;
|
|
55
|
+
height: number;
|
|
56
|
+
}, description: string, edgeSize?: number): LocateResultElement;
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import type { LocateResultElement } from '../types';
|
|
2
|
+
export declare function isFormElement(node: globalThis.Node): boolean;
|
|
3
|
+
export declare function isButtonElement(node: globalThis.Node): node is globalThis.HTMLButtonElement;
|
|
4
|
+
export declare function isAElement(node: globalThis.Node): node is globalThis.HTMLButtonElement;
|
|
5
|
+
export declare function isSvgElement(node: globalThis.Node): node is globalThis.SVGSVGElement;
|
|
6
|
+
export declare function isImgElement(node: globalThis.Node): node is globalThis.HTMLImageElement;
|
|
7
|
+
export declare function isNotContainerElement(node: globalThis.Node): boolean;
|
|
8
|
+
export declare function isTextElement(node: globalThis.Node): node is globalThis.HTMLTextAreaElement;
|
|
9
|
+
export declare function isContainerElement(node: globalThis.Node): node is globalThis.HTMLElement;
|
|
10
|
+
/**
|
|
11
|
+
* Generate a LocateResultElement from a point.
|
|
12
|
+
* This function creates an expanded rect around the given center point.
|
|
13
|
+
*
|
|
14
|
+
* Note: Center coordinates should be integers for pixel-aligned positioning.
|
|
15
|
+
* If decimal values are provided, they will be used as-is, which may result in
|
|
16
|
+
* non-pixel-aligned rect positions.
|
|
17
|
+
*
|
|
18
|
+
* The rect positioning behavior:
|
|
19
|
+
* - When edgeSize is even: center is at the top-left of the four center pixels
|
|
20
|
+
* For example, with edgeSize=4 and center=[10, 10]:
|
|
21
|
+
* □□□□
|
|
22
|
+
* □■□□ (■ represents the center point at pixel 10)
|
|
23
|
+
* □□□□
|
|
24
|
+
* □□□□
|
|
25
|
+
*
|
|
26
|
+
* - When edgeSize is odd: center is at the exact middle pixel
|
|
27
|
+
* For example, with edgeSize=5 and center=[10, 10]:
|
|
28
|
+
* □□□□□
|
|
29
|
+
* □□■□□ (■ represents the center point at pixel 10)
|
|
30
|
+
* □□□□□
|
|
31
|
+
*
|
|
32
|
+
* @param center - Center point coordinates as [x, y] (should be integers)
|
|
33
|
+
* @param description - Description of the element
|
|
34
|
+
* @param edgeSize - Size to expand around the center point (default: 8)
|
|
35
|
+
* @returns A LocateResultElement with rect, center, and description
|
|
36
|
+
*/
|
|
37
|
+
export declare function generateElementByPoint(center: [number, number], description: string, edgeSize?: number): LocateResultElement;
|
|
38
|
+
/**
|
|
39
|
+
* Generate a LocateResultElement from a rect.
|
|
40
|
+
* This function calculates the center point from the rect and expands the rect by edgeSize.
|
|
41
|
+
*
|
|
42
|
+
* Note: The rect uses inclusive coordinates where:
|
|
43
|
+
* - A rect from [left=10, top=10] with [width=1, height=1] covers exactly 1 pixel
|
|
44
|
+
* - The actual pixel range is [left, left+width) which means width pixels
|
|
45
|
+
*
|
|
46
|
+
* @param sourceRect - The source rect to generate element from (typically contains integer values)
|
|
47
|
+
* @param description - Description of the element
|
|
48
|
+
* @param edgeSize - Size to expand around the center point (default: 8)
|
|
49
|
+
* @returns A LocateResultElement with rect, center (always integers), and description
|
|
50
|
+
*/
|
|
51
|
+
export declare function generateElementByRect(sourceRect: {
|
|
52
|
+
left: number;
|
|
53
|
+
top: number;
|
|
54
|
+
width: number;
|
|
55
|
+
height: number;
|
|
56
|
+
}, description: string, edgeSize?: number): LocateResultElement;
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { NodeType } from '../constants/index';
|
|
2
|
+
export interface ElementInfo {
|
|
3
|
+
id: string;
|
|
4
|
+
indexId: number;
|
|
5
|
+
nodeHashId: string;
|
|
6
|
+
xpaths?: string[];
|
|
7
|
+
attributes: {
|
|
8
|
+
nodeType: NodeType;
|
|
9
|
+
[key: string]: string;
|
|
10
|
+
};
|
|
11
|
+
nodeType: NodeType;
|
|
12
|
+
content: string;
|
|
13
|
+
rect: {
|
|
14
|
+
left: number;
|
|
15
|
+
top: number;
|
|
16
|
+
width: number;
|
|
17
|
+
height: number;
|
|
18
|
+
};
|
|
19
|
+
center: [number, number];
|
|
20
|
+
isVisible: boolean;
|
|
21
|
+
}
|
|
22
|
+
export interface ElementNode {
|
|
23
|
+
node: ElementInfo | null;
|
|
24
|
+
children: ElementNode[];
|
|
25
|
+
}
|
|
26
|
+
export { descriptionOfTree, traverseTree, treeToList, truncateText, trimAttributes, } from './tree';
|
|
27
|
+
export { extractTextWithPosition as webExtractTextWithPosition } from './web-extractor';
|
|
28
|
+
export { extractTreeNode as webExtractNodeTree } from './web-extractor';
|
|
29
|
+
export { extractTreeNodeAsString as webExtractNodeTreeAsString } from './web-extractor';
|
|
30
|
+
export { getXpathsByPoint, getXpathsById, getNodeInfoByXpath, getElementInfoByXpath, getElementXpath, } from './locator';
|
|
31
|
+
export { generateElementByRect } from './dom-util';
|
|
32
|
+
export { isNotContainerElement } from './dom-util';
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { NodeType } from '../constants/index';
|
|
2
|
+
export interface ElementInfo {
|
|
3
|
+
id: string;
|
|
4
|
+
indexId: number;
|
|
5
|
+
nodeHashId: string;
|
|
6
|
+
xpaths?: string[];
|
|
7
|
+
attributes: {
|
|
8
|
+
nodeType: NodeType;
|
|
9
|
+
[key: string]: string;
|
|
10
|
+
};
|
|
11
|
+
nodeType: NodeType;
|
|
12
|
+
content: string;
|
|
13
|
+
rect: {
|
|
14
|
+
left: number;
|
|
15
|
+
top: number;
|
|
16
|
+
width: number;
|
|
17
|
+
height: number;
|
|
18
|
+
};
|
|
19
|
+
center: [number, number];
|
|
20
|
+
isVisible: boolean;
|
|
21
|
+
}
|
|
22
|
+
export interface ElementNode {
|
|
23
|
+
node: ElementInfo | null;
|
|
24
|
+
children: ElementNode[];
|
|
25
|
+
}
|
|
26
|
+
export { descriptionOfTree, traverseTree, treeToList, truncateText, trimAttributes, } from './tree';
|
|
27
|
+
export { extractTextWithPosition as webExtractTextWithPosition } from './web-extractor';
|
|
28
|
+
export { extractTreeNode as webExtractNodeTree } from './web-extractor';
|
|
29
|
+
export { extractTreeNodeAsString as webExtractNodeTreeAsString } from './web-extractor';
|
|
30
|
+
export { getXpathsByPoint, getXpathsById, getNodeInfoByXpath, getElementInfoByXpath, getElementXpath, } from './locator';
|
|
31
|
+
export { generateElementByRect } from './dom-util';
|
|
32
|
+
export { isNotContainerElement } from './dom-util';
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ElementInfo } from '.';
|
|
2
|
+
import type { Point } from '../types';
|
|
3
|
+
export declare const getElementXpath: (element: Node, isOrderSensitive?: boolean, isLeafElement?: boolean, limitToCurrentDocument?: boolean) => string;
|
|
4
|
+
/** Retrieve XPath for a previously cached node by its hash ID.
|
|
5
|
+
* Returns a local xpath within the node's own document (limitToCurrentDocument=true). */
|
|
6
|
+
export declare function getXpathsById(id: string): string[] | null;
|
|
7
|
+
export declare function getXpathsByPoint(point: Point, isOrderSensitive: boolean): string[] | null;
|
|
8
|
+
export declare function getNodeInfoByXpath(xpath: string): Node | null;
|
|
9
|
+
export declare function getElementInfoByXpath(xpath: string): ElementInfo | null;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ElementInfo } from '.';
|
|
2
|
+
import type { Point } from '../types';
|
|
3
|
+
export declare const getElementXpath: (element: Node, isOrderSensitive?: boolean, isLeafElement?: boolean, limitToCurrentDocument?: boolean) => string;
|
|
4
|
+
/** Retrieve XPath for a previously cached node by its hash ID.
|
|
5
|
+
* Returns a local xpath within the node's own document (limitToCurrentDocument=true). */
|
|
6
|
+
export declare function getXpathsById(id: string): string[] | null;
|
|
7
|
+
export declare function getXpathsByPoint(point: Point, isOrderSensitive: boolean): string[] | null;
|
|
8
|
+
export declare function getNodeInfoByXpath(xpath: string): Node | null;
|
|
9
|
+
export declare function getElementInfoByXpath(xpath: string): ElementInfo | null;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { BaseElement, ElementTreeNode } from '../types';
|
|
2
|
+
export declare function truncateText(text: string | number | object | undefined, maxLength?: number): string;
|
|
3
|
+
export declare function trimAttributes(attributes: Record<string, any>, truncateTextLength?: number): Record<string, string>;
|
|
4
|
+
export declare function descriptionOfTree<ElementType extends BaseElement = BaseElement>(tree: ElementTreeNode<ElementType>, truncateTextLength?: number, filterNonTextContent?: boolean, visibleOnly?: boolean): string;
|
|
5
|
+
export declare function treeToList<T extends BaseElement>(tree: ElementTreeNode<T>): T[];
|
|
6
|
+
export declare function traverseTree<T extends BaseElement, ReturnNodeType extends BaseElement>(tree: ElementTreeNode<T>, onNode: (node: T) => ReturnNodeType): ElementTreeNode<ReturnNodeType>;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { BaseElement, ElementTreeNode } from '../types';
|
|
2
|
+
export declare function truncateText(text: string | number | object | undefined, maxLength?: number): string;
|
|
3
|
+
export declare function trimAttributes(attributes: Record<string, any>, truncateTextLength?: number): Record<string, string>;
|
|
4
|
+
export declare function descriptionOfTree<ElementType extends BaseElement = BaseElement>(tree: ElementTreeNode<ElementType>, truncateTextLength?: number, filterNonTextContent?: boolean, visibleOnly?: boolean): string;
|
|
5
|
+
export declare function treeToList<T extends BaseElement>(tree: ElementTreeNode<T>): T[];
|
|
6
|
+
export declare function traverseTree<T extends BaseElement, ReturnNodeType extends BaseElement>(tree: ElementTreeNode<T>, onNode: (node: T) => ReturnNodeType): ElementTreeNode<ReturnNodeType>;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { Rect } from '../types';
|
|
2
|
+
export declare function setDebugMode(mode: boolean): void;
|
|
3
|
+
export declare function getDebugMode(): boolean;
|
|
4
|
+
export declare function logger(..._msg: any[]): void;
|
|
5
|
+
export declare function isElementPartiallyInViewport(rect: ReturnType<typeof getRect>, currentWindow: typeof window, currentDocument: typeof document, visibleAreaRatio?: number): boolean;
|
|
6
|
+
export declare function getPseudoElementContent(element: globalThis.Node, currentWindow: typeof globalThis.window): {
|
|
7
|
+
before: string;
|
|
8
|
+
after: string;
|
|
9
|
+
};
|
|
10
|
+
export declare function hasOverflowY(element: globalThis.HTMLElement, currentWindow: typeof globalThis.window): boolean;
|
|
11
|
+
export interface ExtractedRect {
|
|
12
|
+
width: number;
|
|
13
|
+
height: number;
|
|
14
|
+
left: number;
|
|
15
|
+
top: number;
|
|
16
|
+
right: number;
|
|
17
|
+
bottom: number;
|
|
18
|
+
x: number;
|
|
19
|
+
y: number;
|
|
20
|
+
zoom: number;
|
|
21
|
+
}
|
|
22
|
+
export declare function overlappedRect(rect1: ExtractedRect, rect2: ExtractedRect): ExtractedRect | null;
|
|
23
|
+
export declare function getRect(el: globalThis.HTMLElement | globalThis.Node, baseZoom: number, // base zoom
|
|
24
|
+
currentWindow: typeof globalThis.window): ExtractedRect;
|
|
25
|
+
export declare function elementRect(el: globalThis.HTMLElement | globalThis.Node | null, currentWindow: typeof globalThis.window, currentDocument: typeof globalThis.document, baseZoom?: number): {
|
|
26
|
+
left: number;
|
|
27
|
+
top: number;
|
|
28
|
+
width: number;
|
|
29
|
+
height: number;
|
|
30
|
+
zoom: number;
|
|
31
|
+
isVisible: boolean;
|
|
32
|
+
} | false;
|
|
33
|
+
export declare function validTextNodeContent(node: globalThis.Node): string | false;
|
|
34
|
+
export declare function getNodeAttributes(node: globalThis.HTMLElement | globalThis.Node, currentWindow: typeof globalThis.window): Record<string, string>;
|
|
35
|
+
/**
|
|
36
|
+
* Reset the node hash cache. Call at the beginning of each extraction cycle
|
|
37
|
+
* to prevent stale DOM references from accumulating.
|
|
38
|
+
*/
|
|
39
|
+
export declare function setNodeHashCacheListOnWindow(): void;
|
|
40
|
+
export declare function setNodeToCacheList(node: globalThis.Node, id: string): void;
|
|
41
|
+
export declare function getNodeFromCacheList(id: string): globalThis.Node | undefined;
|
|
42
|
+
export declare function midsceneGenerateHash(node: globalThis.Node | null, content: string, rect: Rect): string;
|
|
43
|
+
export declare function generateId(numberId: number): string;
|
|
44
|
+
export declare function setGenerateHashOnWindow(): void;
|
|
45
|
+
export declare function setMidsceneVisibleRectOnWindow(): void;
|
|
46
|
+
export declare function setExtractTextWithPositionOnWindow(): void;
|
|
47
|
+
export declare function getTopDocument(): globalThis.HTMLElement;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import type { Rect } from '../types';
|
|
2
|
+
export declare function setDebugMode(mode: boolean): void;
|
|
3
|
+
export declare function getDebugMode(): boolean;
|
|
4
|
+
export declare function logger(..._msg: any[]): void;
|
|
5
|
+
export declare function isElementPartiallyInViewport(rect: ReturnType<typeof getRect>, currentWindow: typeof window, currentDocument: typeof document, visibleAreaRatio?: number): boolean;
|
|
6
|
+
export declare function getPseudoElementContent(element: globalThis.Node, currentWindow: typeof globalThis.window): {
|
|
7
|
+
before: string;
|
|
8
|
+
after: string;
|
|
9
|
+
};
|
|
10
|
+
export declare function hasOverflowY(element: globalThis.HTMLElement, currentWindow: typeof globalThis.window): boolean;
|
|
11
|
+
export interface ExtractedRect {
|
|
12
|
+
width: number;
|
|
13
|
+
height: number;
|
|
14
|
+
left: number;
|
|
15
|
+
top: number;
|
|
16
|
+
right: number;
|
|
17
|
+
bottom: number;
|
|
18
|
+
x: number;
|
|
19
|
+
y: number;
|
|
20
|
+
zoom: number;
|
|
21
|
+
}
|
|
22
|
+
export declare function overlappedRect(rect1: ExtractedRect, rect2: ExtractedRect): ExtractedRect | null;
|
|
23
|
+
export declare function getRect(el: globalThis.HTMLElement | globalThis.Node, baseZoom: number, // base zoom
|
|
24
|
+
currentWindow: typeof globalThis.window): ExtractedRect;
|
|
25
|
+
export declare function elementRect(el: globalThis.HTMLElement | globalThis.Node | null, currentWindow: typeof globalThis.window, currentDocument: typeof globalThis.document, baseZoom?: number): {
|
|
26
|
+
left: number;
|
|
27
|
+
top: number;
|
|
28
|
+
width: number;
|
|
29
|
+
height: number;
|
|
30
|
+
zoom: number;
|
|
31
|
+
isVisible: boolean;
|
|
32
|
+
} | false;
|
|
33
|
+
export declare function validTextNodeContent(node: globalThis.Node): string | false;
|
|
34
|
+
export declare function getNodeAttributes(node: globalThis.HTMLElement | globalThis.Node, currentWindow: typeof globalThis.window): Record<string, string>;
|
|
35
|
+
/**
|
|
36
|
+
* Reset the node hash cache. Call at the beginning of each extraction cycle
|
|
37
|
+
* to prevent stale DOM references from accumulating.
|
|
38
|
+
*/
|
|
39
|
+
export declare function setNodeHashCacheListOnWindow(): void;
|
|
40
|
+
export declare function setNodeToCacheList(node: globalThis.Node, id: string): void;
|
|
41
|
+
export declare function getNodeFromCacheList(id: string): globalThis.Node | undefined;
|
|
42
|
+
export declare function midsceneGenerateHash(node: globalThis.Node | null, content: string, rect: Rect): string;
|
|
43
|
+
export declare function generateId(numberId: number): string;
|
|
44
|
+
export declare function setGenerateHashOnWindow(): void;
|
|
45
|
+
export declare function setMidsceneVisibleRectOnWindow(): void;
|
|
46
|
+
export declare function setExtractTextWithPositionOnWindow(): void;
|
|
47
|
+
export declare function getTopDocument(): globalThis.HTMLElement;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { WebElementInfo } from '../types';
|
|
2
|
+
import type { Point } from '../types';
|
|
3
|
+
export declare function collectElementInfo(node: Node, currentWindow: typeof window, currentDocument: typeof document, baseZoom?: number, basePoint?: Point, isContainer?: boolean): WebElementInfo | null | any;
|
|
4
|
+
interface WebElementNode {
|
|
5
|
+
node: WebElementInfo | null;
|
|
6
|
+
children: WebElementNode[];
|
|
7
|
+
}
|
|
8
|
+
export declare function extractTextWithPosition(initNode: globalThis.Node, debugMode?: boolean): WebElementInfo[];
|
|
9
|
+
export declare function extractTreeNodeAsString(initNode: globalThis.Node, visibleOnly?: boolean, debugMode?: boolean): string;
|
|
10
|
+
export declare function extractTreeNode(initNode: globalThis.Node, debugMode?: boolean): WebElementNode;
|
|
11
|
+
export declare function mergeElementAndChildrenRects(node: Node, currentWindow: typeof window, currentDocument: typeof document, baseZoom?: number): {
|
|
12
|
+
left: number;
|
|
13
|
+
top: number;
|
|
14
|
+
width: number;
|
|
15
|
+
height: number;
|
|
16
|
+
zoom: number;
|
|
17
|
+
isVisible: boolean;
|
|
18
|
+
} | null;
|
|
19
|
+
export {};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { WebElementInfo } from '../types';
|
|
2
|
+
import type { Point } from '../types';
|
|
3
|
+
export declare function collectElementInfo(node: Node, currentWindow: typeof window, currentDocument: typeof document, baseZoom?: number, basePoint?: Point, isContainer?: boolean): WebElementInfo | null | any;
|
|
4
|
+
interface WebElementNode {
|
|
5
|
+
node: WebElementInfo | null;
|
|
6
|
+
children: WebElementNode[];
|
|
7
|
+
}
|
|
8
|
+
export declare function extractTextWithPosition(initNode: globalThis.Node, debugMode?: boolean): WebElementInfo[];
|
|
9
|
+
export declare function extractTreeNodeAsString(initNode: globalThis.Node, visibleOnly?: boolean, debugMode?: boolean): string;
|
|
10
|
+
export declare function extractTreeNode(initNode: globalThis.Node, debugMode?: boolean): WebElementNode;
|
|
11
|
+
export declare function mergeElementAndChildrenRects(node: Node, currentWindow: typeof window, currentDocument: typeof document, baseZoom?: number): {
|
|
12
|
+
left: number;
|
|
13
|
+
top: number;
|
|
14
|
+
width: number;
|
|
15
|
+
height: number;
|
|
16
|
+
zoom: number;
|
|
17
|
+
isVisible: boolean;
|
|
18
|
+
} | null;
|
|
19
|
+
export {};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { BaseElement, Rect } from '../types';
|
|
2
|
+
interface ElementForOverlay {
|
|
3
|
+
rect: Rect;
|
|
4
|
+
indexId?: number;
|
|
5
|
+
}
|
|
6
|
+
export declare const compositeElementInfoImg: (options: {
|
|
7
|
+
inputImgBase64: string;
|
|
8
|
+
elementsPositionInfo: Array<ElementForOverlay>;
|
|
9
|
+
size?: {
|
|
10
|
+
width: number;
|
|
11
|
+
height: number;
|
|
12
|
+
};
|
|
13
|
+
annotationPadding?: number;
|
|
14
|
+
borderThickness?: number;
|
|
15
|
+
prompt?: string;
|
|
16
|
+
}) => Promise<string>;
|
|
17
|
+
export declare const processImageElementInfo: (options: {
|
|
18
|
+
inputImgBase64: string;
|
|
19
|
+
elementsPositionInfo: Array<BaseElement>;
|
|
20
|
+
elementsPositionInfoWithoutText: Array<BaseElement>;
|
|
21
|
+
}) => Promise<{
|
|
22
|
+
compositeElementInfoImgBase64: string;
|
|
23
|
+
compositeElementInfoImgWithoutTextBase64: string;
|
|
24
|
+
}>;
|
|
25
|
+
export declare function annotateRects(imgBase64: string, rects: Rect[], prompt?: string): Promise<string>;
|
|
26
|
+
export {};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { BaseElement, Rect } from '../types';
|
|
2
|
+
interface ElementForOverlay {
|
|
3
|
+
rect: Rect;
|
|
4
|
+
indexId?: number;
|
|
5
|
+
}
|
|
6
|
+
export declare const compositeElementInfoImg: (options: {
|
|
7
|
+
inputImgBase64: string;
|
|
8
|
+
elementsPositionInfo: Array<ElementForOverlay>;
|
|
9
|
+
size?: {
|
|
10
|
+
width: number;
|
|
11
|
+
height: number;
|
|
12
|
+
};
|
|
13
|
+
annotationPadding?: number;
|
|
14
|
+
borderThickness?: number;
|
|
15
|
+
prompt?: string;
|
|
16
|
+
}) => Promise<string>;
|
|
17
|
+
export declare const processImageElementInfo: (options: {
|
|
18
|
+
inputImgBase64: string;
|
|
19
|
+
elementsPositionInfo: Array<BaseElement>;
|
|
20
|
+
elementsPositionInfoWithoutText: Array<BaseElement>;
|
|
21
|
+
}) => Promise<{
|
|
22
|
+
compositeElementInfoImgBase64: string;
|
|
23
|
+
compositeElementInfoImgWithoutTextBase64: string;
|
|
24
|
+
}>;
|
|
25
|
+
export declare function annotateRects(imgBase64: string, rects: Rect[], prompt?: string): Promise<string>;
|
|
26
|
+
export {};
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Canvas-based fallback for image processing when Photon WASM fails to load.
|
|
3
|
+
* Provides a compatible API with Photon for browser environments.
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* Canvas-based image class that mimics PhotonImage API
|
|
7
|
+
*/
|
|
8
|
+
export declare class CanvasImage {
|
|
9
|
+
private canvas;
|
|
10
|
+
private ctx;
|
|
11
|
+
private _width;
|
|
12
|
+
private _height;
|
|
13
|
+
constructor(canvas: HTMLCanvasElement);
|
|
14
|
+
get_width(): number;
|
|
15
|
+
get_height(): number;
|
|
16
|
+
get_raw_pixels(): Uint8Array;
|
|
17
|
+
get_bytes_jpeg(quality: number): Uint8Array;
|
|
18
|
+
free(): void;
|
|
19
|
+
_getCanvas(): HTMLCanvasElement;
|
|
20
|
+
_getContext(): CanvasRenderingContext2D;
|
|
21
|
+
/**
|
|
22
|
+
* Create a CanvasImage from a base64 string
|
|
23
|
+
*/
|
|
24
|
+
static new_from_base64(base64Body: string): Promise<CanvasImage>;
|
|
25
|
+
/**
|
|
26
|
+
* Create a CanvasImage from a byte array (async version)
|
|
27
|
+
*/
|
|
28
|
+
static new_from_byteslice(bytes: Uint8Array): Promise<CanvasImage>;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Sampling filter enum (compatible with Photon)
|
|
32
|
+
*/
|
|
33
|
+
export declare const CanvasSamplingFilter: {
|
|
34
|
+
readonly Nearest: "nearest";
|
|
35
|
+
readonly Triangle: "triangle";
|
|
36
|
+
readonly CatmullRom: "catmullrom";
|
|
37
|
+
readonly Gaussian: "gaussian";
|
|
38
|
+
readonly Lanczos3: "lanczos3";
|
|
39
|
+
};
|
|
40
|
+
/**
|
|
41
|
+
* RGBA color class (compatible with Photon)
|
|
42
|
+
*/
|
|
43
|
+
export declare class CanvasRgba {
|
|
44
|
+
r: number;
|
|
45
|
+
g: number;
|
|
46
|
+
b: number;
|
|
47
|
+
a: number;
|
|
48
|
+
constructor(r: number, g: number, b: number, a: number);
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Resize an image
|
|
52
|
+
*/
|
|
53
|
+
export declare function canvasResize(image: CanvasImage, newWidth: number, newHeight: number, _filter: string): CanvasImage;
|
|
54
|
+
/**
|
|
55
|
+
* Crop an image
|
|
56
|
+
*/
|
|
57
|
+
export declare function canvasCrop(image: CanvasImage, x1: number, y1: number, x2: number, y2: number): CanvasImage;
|
|
58
|
+
/**
|
|
59
|
+
* Add padding to the right of an image
|
|
60
|
+
*/
|
|
61
|
+
export declare function canvasPaddingRight(image: CanvasImage, padding: number, color: CanvasRgba): CanvasImage;
|
|
62
|
+
/**
|
|
63
|
+
* Add padding to the bottom of an image
|
|
64
|
+
*/
|
|
65
|
+
export declare function canvasPaddingBottom(image: CanvasImage, padding: number, color: CanvasRgba): CanvasImage;
|
|
66
|
+
/**
|
|
67
|
+
* Add uniform padding to an image
|
|
68
|
+
*/
|
|
69
|
+
export declare function canvasPaddingUniform(image: CanvasImage, padding: number, color: CanvasRgba): CanvasImage;
|
|
70
|
+
/**
|
|
71
|
+
* Add padding to the left of an image
|
|
72
|
+
*/
|
|
73
|
+
export declare function canvasPaddingLeft(image: CanvasImage, padding: number, color: CanvasRgba): CanvasImage;
|
|
74
|
+
/**
|
|
75
|
+
* Add padding to the top of an image
|
|
76
|
+
*/
|
|
77
|
+
export declare function canvasPaddingTop(image: CanvasImage, padding: number, color: CanvasRgba): CanvasImage;
|
|
78
|
+
/**
|
|
79
|
+
* Watermark an image (overlay one image on another)
|
|
80
|
+
*/
|
|
81
|
+
export declare function canvasWatermark(base: CanvasImage, overlay: CanvasImage, x: number, y: number): CanvasImage;
|
|
82
|
+
/**
|
|
83
|
+
* Create and return the canvas fallback module with Photon-compatible API
|
|
84
|
+
*/
|
|
85
|
+
export declare function createCanvasFallbackModule(): {
|
|
86
|
+
PhotonImage: typeof CanvasImage;
|
|
87
|
+
SamplingFilter: {
|
|
88
|
+
readonly Nearest: "nearest";
|
|
89
|
+
readonly Triangle: "triangle";
|
|
90
|
+
readonly CatmullRom: "catmullrom";
|
|
91
|
+
readonly Gaussian: "gaussian";
|
|
92
|
+
readonly Lanczos3: "lanczos3";
|
|
93
|
+
};
|
|
94
|
+
resize: typeof canvasResize;
|
|
95
|
+
crop: typeof canvasCrop;
|
|
96
|
+
open_image: () => never;
|
|
97
|
+
base64_to_image: typeof CanvasImage.new_from_base64;
|
|
98
|
+
padding_uniform: typeof canvasPaddingUniform;
|
|
99
|
+
padding_left: typeof canvasPaddingLeft;
|
|
100
|
+
padding_right: typeof canvasPaddingRight;
|
|
101
|
+
padding_top: typeof canvasPaddingTop;
|
|
102
|
+
padding_bottom: typeof canvasPaddingBottom;
|
|
103
|
+
watermark: typeof canvasWatermark;
|
|
104
|
+
Rgba: typeof CanvasRgba;
|
|
105
|
+
};
|