playwriter 0.0.63 → 0.0.89
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/dist/a11y-client.js +18 -8
- package/dist/aria-snapshot.d.ts +41 -3
- package/dist/aria-snapshot.d.ts.map +1 -1
- package/dist/aria-snapshot.js +134 -55
- package/dist/aria-snapshot.js.map +1 -1
- package/dist/aria-snapshot.test.js +5 -2
- package/dist/aria-snapshot.test.js.map +1 -1
- package/dist/aria-snapshot.unit.test.js +83 -41
- package/dist/aria-snapshot.unit.test.js.map +1 -1
- package/dist/assets/cursors/screen-studio/pointer-macos-tahoe-data-url.d.ts +5 -0
- package/dist/assets/cursors/screen-studio/pointer-macos-tahoe-data-url.d.ts.map +1 -0
- package/dist/assets/cursors/screen-studio/pointer-macos-tahoe-data-url.js +5 -0
- package/dist/assets/cursors/screen-studio/pointer-macos-tahoe-data-url.js.map +1 -0
- package/dist/bippy.js +1 -1
- package/dist/cdp-log.d.ts +1 -1
- package/dist/cdp-log.d.ts.map +1 -1
- package/dist/cdp-log.js +1 -1
- package/dist/cdp-log.js.map +1 -1
- package/dist/cdp-relay.d.ts.map +1 -1
- package/dist/cdp-relay.js +492 -298
- package/dist/cdp-relay.js.map +1 -1
- package/dist/cdp-session.d.ts.map +1 -1
- package/dist/cdp-session.js.map +1 -1
- package/dist/cdp-types.d.ts.map +1 -1
- package/dist/cdp-types.js +7 -7
- package/dist/cdp-types.js.map +1 -1
- package/dist/clean-html.d.ts.map +1 -1
- package/dist/clean-html.js +4 -5
- package/dist/clean-html.js.map +1 -1
- package/dist/cli.js +45 -27
- package/dist/cli.js.map +1 -1
- package/dist/create-logger.d.ts.map +1 -1
- package/dist/create-logger.js +3 -1
- package/dist/create-logger.js.map +1 -1
- package/dist/debugger-examples-types.d.ts.map +1 -1
- package/dist/debugger.d.ts.map +1 -1
- package/dist/debugger.js +1 -3
- package/dist/debugger.js.map +1 -1
- package/dist/diff-utils.d.ts.map +1 -1
- package/dist/diff-utils.js +1 -4
- package/dist/diff-utils.js.map +1 -1
- package/dist/editor-api.md +12 -2
- package/dist/editor-examples.d.ts +1 -1
- package/dist/editor-examples.d.ts.map +1 -1
- package/dist/editor-examples.js +1 -1
- package/dist/editor-examples.js.map +1 -1
- package/dist/editor.d.ts +1 -1
- package/dist/editor.d.ts.map +1 -1
- package/dist/editor.js +1 -1
- package/dist/editor.js.map +1 -1
- package/dist/executor.d.ts +26 -3
- package/dist/executor.d.ts.map +1 -1
- package/dist/executor.js +297 -64
- package/dist/executor.js.map +1 -1
- package/dist/executor.unit.test.js +38 -1
- package/dist/executor.unit.test.js.map +1 -1
- package/dist/extension-connection.test.js +139 -36
- package/dist/extension-connection.test.js.map +1 -1
- package/dist/ffmpeg.d.ts +148 -0
- package/dist/ffmpeg.d.ts.map +1 -0
- package/dist/ffmpeg.js +523 -0
- package/dist/ffmpeg.js.map +1 -0
- package/dist/ghost-browser.d.ts.map +1 -1
- package/dist/ghost-browser.js.map +1 -1
- package/dist/ghost-cursor-client.js +287 -0
- package/dist/ghost-cursor.d.ts +27 -0
- package/dist/ghost-cursor.d.ts.map +1 -0
- package/dist/ghost-cursor.js +63 -0
- package/dist/ghost-cursor.js.map +1 -0
- package/dist/htmlrewrite.d.ts.map +1 -1
- package/dist/htmlrewrite.js +17 -55
- package/dist/htmlrewrite.js.map +1 -1
- package/dist/htmlrewrite.test.js.map +1 -1
- package/dist/kill-port.d.ts.map +1 -1
- package/dist/kill-port.js +1 -3
- package/dist/kill-port.js.map +1 -1
- package/dist/locator-selector.test.d.ts +2 -0
- package/dist/locator-selector.test.d.ts.map +1 -0
- package/dist/locator-selector.test.js +96 -0
- package/dist/locator-selector.test.js.map +1 -0
- package/dist/mcp-client.js.map +1 -1
- package/dist/mcp.d.ts.map +1 -1
- package/dist/mcp.js +8 -3
- package/dist/mcp.js.map +1 -1
- package/dist/on-mouse-action.test.d.ts +2 -0
- package/dist/on-mouse-action.test.d.ts.map +1 -0
- package/dist/on-mouse-action.test.js +155 -0
- package/dist/on-mouse-action.test.js.map +1 -0
- package/dist/page-markdown.js +4 -4
- package/dist/page-markdown.js.map +1 -1
- package/dist/prompt.md +450 -377
- package/dist/protocol.d.ts +4 -0
- package/dist/protocol.d.ts.map +1 -1
- package/dist/readability.js +16 -2
- package/dist/recording-ghost-cursor.d.ts +41 -0
- package/dist/recording-ghost-cursor.d.ts.map +1 -0
- package/dist/recording-ghost-cursor.js +79 -0
- package/dist/recording-ghost-cursor.js.map +1 -0
- package/dist/recording-relay.d.ts.map +1 -1
- package/dist/recording-relay.js +8 -8
- package/dist/recording-relay.js.map +1 -1
- package/dist/relay-client.d.ts +17 -4
- package/dist/relay-client.d.ts.map +1 -1
- package/dist/relay-client.js +45 -11
- package/dist/relay-client.js.map +1 -1
- package/dist/relay-core.test.d.ts.map +1 -1
- package/dist/relay-core.test.js +515 -26
- package/dist/relay-core.test.js.map +1 -1
- package/dist/relay-navigation.test.d.ts.map +1 -1
- package/dist/relay-navigation.test.js +169 -31
- package/dist/relay-navigation.test.js.map +1 -1
- package/dist/relay-session.test.d.ts.map +1 -1
- package/dist/relay-session.test.js +113 -65
- package/dist/relay-session.test.js.map +1 -1
- package/dist/relay-state.d.ts +158 -0
- package/dist/relay-state.d.ts.map +1 -0
- package/dist/relay-state.js +306 -0
- package/dist/relay-state.js.map +1 -0
- package/dist/relay-state.test.d.ts +2 -0
- package/dist/relay-state.test.d.ts.map +1 -0
- package/dist/relay-state.test.js +472 -0
- package/dist/relay-state.test.js.map +1 -0
- package/dist/scoped-fs.d.ts.map +1 -1
- package/dist/scoped-fs.js.map +1 -1
- package/dist/screen-recording.d.ts +66 -4
- package/dist/screen-recording.d.ts.map +1 -1
- package/dist/screen-recording.js +150 -13
- package/dist/screen-recording.js.map +1 -1
- package/dist/screen-recording.test.d.ts +2 -0
- package/dist/screen-recording.test.d.ts.map +1 -0
- package/dist/screen-recording.test.js +102 -0
- package/dist/screen-recording.test.js.map +1 -0
- package/dist/selector-generator.js +1 -1
- package/dist/snapshot-tools.test.js +71 -28
- package/dist/snapshot-tools.test.js.map +1 -1
- package/dist/start-relay-server.d.ts +1 -1
- package/dist/start-relay-server.d.ts.map +1 -1
- package/dist/start-relay-server.js +1 -1
- package/dist/start-relay-server.js.map +1 -1
- package/dist/styles-api.md +8 -1
- package/dist/styles-examples.d.ts +1 -1
- package/dist/styles-examples.d.ts.map +1 -1
- package/dist/styles-examples.js +1 -1
- package/dist/styles-examples.js.map +1 -1
- package/dist/styles.d.ts.map +1 -1
- package/dist/styles.js +1 -3
- package/dist/styles.js.map +1 -1
- package/dist/test-declarations.d.ts.map +1 -1
- package/dist/test-utils.d.ts +1 -1
- package/dist/test-utils.d.ts.map +1 -1
- package/dist/test-utils.js +7 -5
- package/dist/test-utils.js.map +1 -1
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js.map +1 -1
- package/dist/wait-for-page-load.d.ts.map +1 -1
- package/dist/wait-for-page-load.js +1 -1
- package/dist/wait-for-page-load.js.map +1 -1
- package/package.json +4 -3
- package/src/a11y-client.ts +5 -4
- package/src/aria-snapshot.test.ts +5 -2
- package/src/aria-snapshot.ts +306 -117
- package/src/aria-snapshot.unit.test.ts +199 -141
- package/src/aria-snapshots/github-interactive.txt +2 -0
- package/src/aria-snapshots/github-raw.txt +5 -1
- package/src/aria-snapshots/hackernews-interactive.txt +238 -241
- package/src/aria-snapshots/hackernews-raw.txt +265 -269
- package/src/assets/aria-labels-example.png +0 -0
- package/src/assets/aria-labels-github.png +0 -0
- package/src/assets/aria-labels-hacker-news.png +0 -0
- package/src/assets/aria-labels-old-reddit.png +0 -0
- package/src/assets/cursors/screen-studio/pointer-macos-tahoe-data-url.ts +5 -0
- package/src/assets/cursors/screen-studio/pointer-macos-tahoe.svg +18 -0
- package/src/cdp-log.ts +4 -1
- package/src/cdp-relay.ts +1059 -737
- package/src/cdp-session.ts +12 -3
- package/src/cdp-types.ts +51 -51
- package/src/clean-html.ts +4 -5
- package/src/cli.ts +82 -55
- package/src/create-logger.ts +5 -3
- package/src/debugger-examples-types.ts +4 -1
- package/src/debugger.ts +1 -5
- package/src/diff-utils.ts +2 -5
- package/src/editor-examples.ts +11 -1
- package/src/editor.ts +10 -2
- package/src/executor.ts +374 -73
- package/src/executor.unit.test.ts +48 -1
- package/src/extension-connection.test.ts +612 -488
- package/src/ffmpeg.ts +769 -0
- package/src/ghost-browser.ts +4 -6
- package/src/ghost-cursor-client.ts +369 -0
- package/src/ghost-cursor.ts +110 -0
- package/src/htmlrewrite.test.ts +6 -2
- package/src/htmlrewrite.ts +348 -386
- package/src/kill-port.ts +1 -3
- package/src/locator-selector.test.ts +115 -0
- package/src/mcp-client.ts +1 -1
- package/src/mcp.ts +21 -15
- package/src/on-mouse-action.test.ts +196 -0
- package/src/page-markdown.ts +7 -7
- package/src/protocol.ts +73 -57
- package/src/recording-ghost-cursor.ts +113 -0
- package/src/recording-relay.ts +20 -12
- package/src/relay-client.ts +85 -18
- package/src/relay-core.test.ts +1117 -578
- package/src/relay-navigation.test.ts +648 -483
- package/src/relay-session.test.ts +984 -929
- package/src/relay-state.test.ts +570 -0
- package/src/relay-state.ts +497 -0
- package/src/resource.md +21 -49
- package/src/scoped-fs.ts +9 -3
- package/src/screen-recording.test.ts +111 -0
- package/src/screen-recording.ts +256 -31
- package/src/skill.md +476 -396
- package/src/snapshot-tools.test.ts +580 -528
- package/src/snapshots/shadcn-ui-accessibility-full.md +8 -8
- package/src/snapshots/shadcn-ui-accessibility-interactive.md +8 -8
- package/src/start-relay-server.ts +14 -11
- package/src/styles-examples.ts +8 -1
- package/src/styles.ts +20 -21
- package/src/test-declarations.ts +6 -6
- package/src/test-utils.ts +104 -91
- package/src/utils.ts +2 -1
- package/src/wait-for-page-load.ts +6 -1
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
(() => {
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
function __accessProp(key) {
|
|
7
|
+
return this[key];
|
|
8
|
+
}
|
|
9
|
+
var __toCommonJS = (from) => {
|
|
10
|
+
var entry = (__moduleCache ??= new WeakMap).get(from), desc;
|
|
11
|
+
if (entry)
|
|
12
|
+
return entry;
|
|
13
|
+
entry = __defProp({}, "__esModule", { value: true });
|
|
14
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
15
|
+
for (var key of __getOwnPropNames(from))
|
|
16
|
+
if (!__hasOwnProp.call(entry, key))
|
|
17
|
+
__defProp(entry, key, {
|
|
18
|
+
get: __accessProp.bind(from, key),
|
|
19
|
+
enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
__moduleCache.set(from, entry);
|
|
23
|
+
return entry;
|
|
24
|
+
};
|
|
25
|
+
var __moduleCache;
|
|
26
|
+
|
|
27
|
+
// src/ghost-cursor-client.ts
|
|
28
|
+
var exports_ghost_cursor_client = {};
|
|
29
|
+
|
|
30
|
+
// src/assets/cursors/screen-studio/pointer-macos-tahoe-data-url.ts
|
|
31
|
+
var SCREENSTUDIO_POINTER_MACOS_TAHOE_DATA_URL = "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNjE4IiBoZWlnaHQ9Ijk1OCIgdmlld0JveD0iMCAwIDYxOCA5NTgiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxnIGZpbHRlcj0idXJsKCNmaWx0ZXIwX2RfMzg0XzI3KSI+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTI3LjA2MiAzNy4wMzMxTDU0MC42OTYgNDUxLjU1NUM1OTIuNjUzIDUwMy42NiA1NTUuNzk0IDU5Mi41NzQgNDgyLjIyNiA1OTIuNTc0TDQyMS44MzEgNTkyLjU2OUw0ODEuODIxIDczNS4wNTRDNDkyLjMzMSA3NjAuMDIxIDQ5Mi40NzkgNzg3LjY1MiA0ODIuMjY1IDgxMi43NjdDNDcyLjAwMiA4MzcuOTMyIDQ1Mi41NjEgODU3LjU3IDQyNy40OTYgODY4LjA4QzQxNC44NjQgODczLjM1OSA0MDEuNjQgODc2LjAyNCAzODguMTIxIDg3Ni4wMjRDMzQ3LjExNyA4NzYuMDI0IDMxMC4zNTggODUxLjYgMjk0LjQ3IDgxMy44MDRMMjMxLjQyIDY2My45MThMMTkwLjM2OCA3MDAuMzM3QzEzNy4wMjkgNzQ3LjUwOCA1MyA3MDkuNjYzIDUzIDYzOC40MTNWNjcuNjc0NEM1MyAyOC45OTAzIDk5LjcyNjggOS42NDgyOCAxMjcuMDYyIDM3LjAzMzFaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTEwMi4zMTYgOTkuNjUyQzEwMi4zMTYgOTMuMTg4MiAxMTAuMTYyIDg5LjkzMTYgMTE0LjcwMSA5NC41MjA0TDUwNC44OTcgNDg1LjU1NUM1MjYuMTY0IDUwNi44NzEgNTExLjA2NSA1NDMuMjM2IDQ4MC45NjcgNTQzLjIzNkwzNDcuNTQ2IDU0My4xNjFMNDM2LjM0MiA3NTQuMTQzQzQ0Ny41NDIgNzgwLjc4OCA0MzUuMDA5IDgxMS40MjkgNDA4LjQxNCA4MjIuNTgxQzM4MS43MiA4MzMuNzgxIDM1MS4xMjggODIxLjI5OCAzMzkuOTc3IDc5NC43MDJMMjUwLjI5MyA1ODEuMzUyTDE1OC41MTcgNjYyLjY0NEMxMzcuOTkxIDY4MC44MDEgMTA2LjMxOSA2NjguMTQ1IDEwMi42NjQgNjQyLjMyM0wxMDIuMzE2IDYzNy4zMzFWOTkuNjUyWiIgZmlsbD0iYmxhY2siLz4KPC9nPgo8ZGVmcz4KPGZpbHRlciBpZD0iZmlsdGVyMF9kXzM4NF8yNyIgeD0iMC4zNCIgeT0iMC43OTkyMTkiIHdpZHRoPSI2MTcuMzIiIGhlaWdodD0iOTU3LjE0NCIgZmlsdGVyVW5pdHM9InVzZXJTcGFjZU9uVXNlIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9InNSR0IiPgo8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PSIwIiByZXN1bHQ9IkJhY2tncm91bmRJbWFnZUZpeCIvPgo8ZmVDb2xvck1hdHJpeCBpbj0iU291cmNlQWxwaGEiIHR5cGU9Im1hdHJpeCIgdmFsdWVzPSIwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAxMjcgMCIgcmVzdWx0PSJoYXJkQWxwaGEiLz4KPGZlT2Zmc2V0IGR5PSIyOS4yNiIvPgo8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSIyNi4zMyIvPgo8ZmVDb21wb3NpdGUgaW4yPSJoYXJkQWxwaGEiIG9wZXJhdG9yPSJvdXQiLz4KPGZlQ29sb3JNYXRyaXggdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAuNjUgMCIvPgo8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluMj0iQmFja2dyb3VuZEltYWdlRml4IiByZXN1bHQ9ImVmZmVjdDFfZHJvcFNoYWRvd18zODRfMjciLz4KPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJlZmZlY3QxX2Ryb3BTaGFkb3dfMzg0XzI3IiByZXN1bHQ9InNoYXBlIi8+CjwvZmlsdGVyPgo8L2RlZnM+Cjwvc3ZnPg==";
|
|
32
|
+
|
|
33
|
+
// src/ghost-cursor-client.ts
|
|
34
|
+
var CURSOR_ID = "__playwriter_ghost_cursor__";
|
|
35
|
+
var SCREENSTUDIO_POINTER_ASPECT_RATIO = 618 / 958;
|
|
36
|
+
var SCREENSTUDIO_HOTSPOT_X_RATIO = 0.14;
|
|
37
|
+
var SCREENSTUDIO_HOTSPOT_Y_RATIO = 0.06;
|
|
38
|
+
var MINIMAL_TRIANGLE_HOTSPOT_X_RATIO = 0.07;
|
|
39
|
+
var MINIMAL_TRIANGLE_HOTSPOT_Y_RATIO = 0.06;
|
|
40
|
+
var DEFAULT_OPTIONS = {
|
|
41
|
+
style: "minimal",
|
|
42
|
+
color: "#111827",
|
|
43
|
+
size: 22,
|
|
44
|
+
zIndex: 2147483647,
|
|
45
|
+
easing: "cubic-bezier(0.16, 1, 0.3, 1)",
|
|
46
|
+
minDurationMs: 24,
|
|
47
|
+
maxDurationMs: 320,
|
|
48
|
+
speedPxPerMs: 4
|
|
49
|
+
};
|
|
50
|
+
var runtime = {
|
|
51
|
+
cursorElement: null,
|
|
52
|
+
options: DEFAULT_OPTIONS,
|
|
53
|
+
x: 0,
|
|
54
|
+
y: 0,
|
|
55
|
+
scale: 1,
|
|
56
|
+
hasPosition: false,
|
|
57
|
+
enabled: false
|
|
58
|
+
};
|
|
59
|
+
function clamp(options) {
|
|
60
|
+
const { value, min, max } = options;
|
|
61
|
+
return Math.min(max, Math.max(min, value));
|
|
62
|
+
}
|
|
63
|
+
function mergeOptions(options) {
|
|
64
|
+
if (!options) {
|
|
65
|
+
return DEFAULT_OPTIONS;
|
|
66
|
+
}
|
|
67
|
+
return {
|
|
68
|
+
style: options.style ?? DEFAULT_OPTIONS.style,
|
|
69
|
+
color: options.color ?? DEFAULT_OPTIONS.color,
|
|
70
|
+
size: options.size ?? DEFAULT_OPTIONS.size,
|
|
71
|
+
zIndex: options.zIndex ?? DEFAULT_OPTIONS.zIndex,
|
|
72
|
+
easing: options.easing ?? DEFAULT_OPTIONS.easing,
|
|
73
|
+
minDurationMs: options.minDurationMs ?? DEFAULT_OPTIONS.minDurationMs,
|
|
74
|
+
maxDurationMs: options.maxDurationMs ?? DEFAULT_OPTIONS.maxDurationMs,
|
|
75
|
+
speedPxPerMs: options.speedPxPerMs ?? DEFAULT_OPTIONS.speedPxPerMs
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
function getCursorDimensions() {
|
|
79
|
+
if (runtime.options.style === "screenstudio") {
|
|
80
|
+
const height = runtime.options.size;
|
|
81
|
+
const width = Math.max(10, Math.round(height * SCREENSTUDIO_POINTER_ASPECT_RATIO));
|
|
82
|
+
return { width, height };
|
|
83
|
+
}
|
|
84
|
+
if (runtime.options.style === "minimal") {
|
|
85
|
+
const size = Math.max(12, runtime.options.size);
|
|
86
|
+
return { width: size, height: size };
|
|
87
|
+
}
|
|
88
|
+
return { width: runtime.options.size, height: runtime.options.size };
|
|
89
|
+
}
|
|
90
|
+
function getHotspotOffsetPx() {
|
|
91
|
+
const dimensions = getCursorDimensions();
|
|
92
|
+
if (runtime.options.style === "screenstudio") {
|
|
93
|
+
return {
|
|
94
|
+
x: Math.round(dimensions.width * SCREENSTUDIO_HOTSPOT_X_RATIO),
|
|
95
|
+
y: Math.round(dimensions.height * SCREENSTUDIO_HOTSPOT_Y_RATIO)
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
if (runtime.options.style === "minimal") {
|
|
99
|
+
return {
|
|
100
|
+
x: Math.round(dimensions.width * MINIMAL_TRIANGLE_HOTSPOT_X_RATIO),
|
|
101
|
+
y: Math.round(dimensions.height * MINIMAL_TRIANGLE_HOTSPOT_Y_RATIO)
|
|
102
|
+
};
|
|
103
|
+
}
|
|
104
|
+
return {
|
|
105
|
+
x: Math.round(dimensions.width / 2),
|
|
106
|
+
y: Math.round(dimensions.height / 2)
|
|
107
|
+
};
|
|
108
|
+
}
|
|
109
|
+
function getBaseOpacity() {
|
|
110
|
+
if (runtime.options.style === "screenstudio") {
|
|
111
|
+
return "0.95";
|
|
112
|
+
}
|
|
113
|
+
if (runtime.options.style === "minimal") {
|
|
114
|
+
return "1";
|
|
115
|
+
}
|
|
116
|
+
return "0.72";
|
|
117
|
+
}
|
|
118
|
+
function applyTransform() {
|
|
119
|
+
if (!runtime.cursorElement) {
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
const hotspot = getHotspotOffsetPx();
|
|
123
|
+
runtime.cursorElement.style.transform = `translate3d(${runtime.x - hotspot.x}px, ${runtime.y - hotspot.y}px, 0) scale(${runtime.scale})`;
|
|
124
|
+
}
|
|
125
|
+
function computeDurationMs(options) {
|
|
126
|
+
if (!runtime.hasPosition) {
|
|
127
|
+
return 0;
|
|
128
|
+
}
|
|
129
|
+
const dx = options.targetX - runtime.x;
|
|
130
|
+
const dy = options.targetY - runtime.y;
|
|
131
|
+
const distance = Math.hypot(dx, dy);
|
|
132
|
+
const rawDurationMs = distance / runtime.options.speedPxPerMs;
|
|
133
|
+
return clamp({
|
|
134
|
+
value: rawDurationMs,
|
|
135
|
+
min: runtime.options.minDurationMs,
|
|
136
|
+
max: runtime.options.maxDurationMs
|
|
137
|
+
});
|
|
138
|
+
}
|
|
139
|
+
function createCursorElement() {
|
|
140
|
+
const element = document.createElement("div");
|
|
141
|
+
element.id = CURSOR_ID;
|
|
142
|
+
element.setAttribute("aria-hidden", "true");
|
|
143
|
+
element.style.position = "fixed";
|
|
144
|
+
element.style.left = "0";
|
|
145
|
+
element.style.top = "0";
|
|
146
|
+
element.style.pointerEvents = "none";
|
|
147
|
+
element.style.zIndex = `${runtime.options.zIndex}`;
|
|
148
|
+
element.style.opacity = getBaseOpacity();
|
|
149
|
+
element.style.transitionProperty = "transform, opacity";
|
|
150
|
+
element.style.transitionTimingFunction = runtime.options.easing;
|
|
151
|
+
element.style.transitionDuration = "0ms";
|
|
152
|
+
element.style.willChange = "transform";
|
|
153
|
+
runtime.cursorElement = element;
|
|
154
|
+
applyRuntimeVisualOptions();
|
|
155
|
+
return element;
|
|
156
|
+
}
|
|
157
|
+
function ensureCursorElement() {
|
|
158
|
+
const existing = document.getElementById(CURSOR_ID);
|
|
159
|
+
if (existing) {
|
|
160
|
+
runtime.cursorElement = existing;
|
|
161
|
+
return existing;
|
|
162
|
+
}
|
|
163
|
+
const element = createCursorElement();
|
|
164
|
+
runtime.cursorElement = element;
|
|
165
|
+
const root = document.documentElement || document.body;
|
|
166
|
+
root.appendChild(element);
|
|
167
|
+
return element;
|
|
168
|
+
}
|
|
169
|
+
function applyRuntimeVisualOptions() {
|
|
170
|
+
if (!runtime.cursorElement) {
|
|
171
|
+
return;
|
|
172
|
+
}
|
|
173
|
+
const dimensions = getCursorDimensions();
|
|
174
|
+
runtime.cursorElement.style.width = `${dimensions.width}px`;
|
|
175
|
+
runtime.cursorElement.style.height = `${dimensions.height}px`;
|
|
176
|
+
runtime.cursorElement.style.zIndex = `${runtime.options.zIndex}`;
|
|
177
|
+
runtime.cursorElement.style.transitionTimingFunction = runtime.options.easing;
|
|
178
|
+
if (runtime.options.style === "screenstudio") {
|
|
179
|
+
runtime.cursorElement.style.borderRadius = "0";
|
|
180
|
+
runtime.cursorElement.style.border = "none";
|
|
181
|
+
runtime.cursorElement.style.backgroundColor = "transparent";
|
|
182
|
+
runtime.cursorElement.style.backgroundImage = `url("${SCREENSTUDIO_POINTER_MACOS_TAHOE_DATA_URL}")`;
|
|
183
|
+
runtime.cursorElement.style.backgroundRepeat = "no-repeat";
|
|
184
|
+
runtime.cursorElement.style.backgroundPosition = "left top";
|
|
185
|
+
runtime.cursorElement.style.backgroundSize = "contain";
|
|
186
|
+
runtime.cursorElement.style.backdropFilter = "none";
|
|
187
|
+
runtime.cursorElement.style.filter = "none";
|
|
188
|
+
runtime.cursorElement.style.boxShadow = "none";
|
|
189
|
+
runtime.cursorElement.style.opacity = getBaseOpacity();
|
|
190
|
+
return;
|
|
191
|
+
}
|
|
192
|
+
if (runtime.options.style === "minimal") {
|
|
193
|
+
const triangleSvg = `<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="-1 -1 26 26"><path fill="white" stroke="${runtime.options.color}" stroke-width="1.5" stroke-linejoin="round" d="m23.284 19.124l-6.866-6.895a.4.4 0 0 1-.118-.296a.43.43 0 0 1 .163-.282l4.439-3.077a1.48 1.48 0 0 0 .621-1.48a1.48 1.48 0 0 0-1.036-1.198L1.623.302a1.14 1.14 0 0 0-1.11.282A1.13 1.13 0 0 0 .29 1.649L5.928 20.44a1.48 1.48 0 0 0 1.183 1.035a1.48 1.48 0 0 0 1.48-.621l3.078-4.44a.37.37 0 0 1 .31-.118a.43.43 0 0 1 .296.104l6.91 6.91a1.48 1.48 0 0 0 2.087 0l2.086-2.086a1.48 1.48 0 0 0-.074-2.101"/></svg>`;
|
|
194
|
+
const triangleDataUrl = `url("data:image/svg+xml,${encodeURIComponent(triangleSvg)}")`;
|
|
195
|
+
runtime.cursorElement.style.borderRadius = "0";
|
|
196
|
+
runtime.cursorElement.style.border = "none";
|
|
197
|
+
runtime.cursorElement.style.backgroundColor = "transparent";
|
|
198
|
+
runtime.cursorElement.style.backgroundImage = triangleDataUrl;
|
|
199
|
+
runtime.cursorElement.style.backgroundRepeat = "no-repeat";
|
|
200
|
+
runtime.cursorElement.style.backgroundSize = "contain";
|
|
201
|
+
runtime.cursorElement.style.backgroundPosition = "left top";
|
|
202
|
+
runtime.cursorElement.style.backdropFilter = "none";
|
|
203
|
+
runtime.cursorElement.style.boxShadow = "none";
|
|
204
|
+
runtime.cursorElement.style.filter = "drop-shadow(0 1px 2px rgba(0, 0, 0, 0.4))";
|
|
205
|
+
runtime.cursorElement.style.opacity = getBaseOpacity();
|
|
206
|
+
return;
|
|
207
|
+
}
|
|
208
|
+
runtime.cursorElement.style.borderRadius = "999px";
|
|
209
|
+
runtime.cursorElement.style.border = "none";
|
|
210
|
+
runtime.cursorElement.style.backgroundColor = runtime.options.color;
|
|
211
|
+
runtime.cursorElement.style.backgroundImage = "none";
|
|
212
|
+
runtime.cursorElement.style.backdropFilter = "none";
|
|
213
|
+
runtime.cursorElement.style.filter = "none";
|
|
214
|
+
runtime.cursorElement.style.boxShadow = "0 2px 10px rgba(0, 0, 0, 0.18), inset 0 0 0 2px rgba(255, 255, 255, 0.55)";
|
|
215
|
+
runtime.cursorElement.style.opacity = getBaseOpacity();
|
|
216
|
+
}
|
|
217
|
+
function moveCursor(options) {
|
|
218
|
+
if (!runtime.enabled) {
|
|
219
|
+
return;
|
|
220
|
+
}
|
|
221
|
+
const element = ensureCursorElement();
|
|
222
|
+
const durationMs = computeDurationMs({ targetX: options.x, targetY: options.y });
|
|
223
|
+
element.style.transitionDuration = `${Math.round(durationMs)}ms`;
|
|
224
|
+
runtime.x = options.x;
|
|
225
|
+
runtime.y = options.y;
|
|
226
|
+
runtime.hasPosition = true;
|
|
227
|
+
applyTransform();
|
|
228
|
+
}
|
|
229
|
+
function setPressed(options) {
|
|
230
|
+
if (!runtime.enabled) {
|
|
231
|
+
return;
|
|
232
|
+
}
|
|
233
|
+
const element = ensureCursorElement();
|
|
234
|
+
runtime.scale = options.pressed ? runtime.options.style === "screenstudio" ? 0.94 : runtime.options.style === "minimal" ? 0.93 : 0.82 : 1;
|
|
235
|
+
element.style.opacity = options.pressed ? "1" : getBaseOpacity();
|
|
236
|
+
applyTransform();
|
|
237
|
+
}
|
|
238
|
+
function enable(options) {
|
|
239
|
+
runtime.options = mergeOptions(options);
|
|
240
|
+
runtime.enabled = true;
|
|
241
|
+
ensureCursorElement();
|
|
242
|
+
applyRuntimeVisualOptions();
|
|
243
|
+
if (!runtime.hasPosition) {
|
|
244
|
+
runtime.x = Math.round(window.innerWidth / 2);
|
|
245
|
+
runtime.y = Math.round(window.innerHeight / 2);
|
|
246
|
+
runtime.scale = 1;
|
|
247
|
+
runtime.hasPosition = true;
|
|
248
|
+
}
|
|
249
|
+
applyTransform();
|
|
250
|
+
}
|
|
251
|
+
function disable() {
|
|
252
|
+
runtime.enabled = false;
|
|
253
|
+
runtime.scale = 1;
|
|
254
|
+
runtime.hasPosition = false;
|
|
255
|
+
if (runtime.cursorElement) {
|
|
256
|
+
runtime.cursorElement.remove();
|
|
257
|
+
runtime.cursorElement = null;
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
function applyMouseAction(action) {
|
|
261
|
+
if (!runtime.enabled) {
|
|
262
|
+
return;
|
|
263
|
+
}
|
|
264
|
+
if (action.type === "move" || action.type === "wheel") {
|
|
265
|
+
moveCursor({ x: action.x, y: action.y });
|
|
266
|
+
return;
|
|
267
|
+
}
|
|
268
|
+
if (action.type === "down") {
|
|
269
|
+
moveCursor({ x: action.x, y: action.y });
|
|
270
|
+
setPressed({ pressed: true });
|
|
271
|
+
return;
|
|
272
|
+
}
|
|
273
|
+
if (action.type === "up") {
|
|
274
|
+
moveCursor({ x: action.x, y: action.y });
|
|
275
|
+
setPressed({ pressed: false });
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
var api = {
|
|
279
|
+
enable,
|
|
280
|
+
disable,
|
|
281
|
+
applyMouseAction,
|
|
282
|
+
isEnabled: () => {
|
|
283
|
+
return runtime.enabled;
|
|
284
|
+
}
|
|
285
|
+
};
|
|
286
|
+
globalThis.__playwriterGhostCursor = api;
|
|
287
|
+
})();
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Node-side ghost cursor helpers.
|
|
3
|
+
* Injects the browser bundle and forwards mouse action events to the page overlay.
|
|
4
|
+
*/
|
|
5
|
+
import type { Page, MouseActionEvent } from '@xmorse/playwright-core';
|
|
6
|
+
export interface GhostCursorClientOptions {
|
|
7
|
+
style?: 'minimal' | 'dot' | 'screenstudio';
|
|
8
|
+
color?: string;
|
|
9
|
+
size?: number;
|
|
10
|
+
zIndex?: number;
|
|
11
|
+
easing?: string;
|
|
12
|
+
minDurationMs?: number;
|
|
13
|
+
maxDurationMs?: number;
|
|
14
|
+
speedPxPerMs?: number;
|
|
15
|
+
}
|
|
16
|
+
export declare function enableGhostCursor(options: {
|
|
17
|
+
page: Page;
|
|
18
|
+
cursorOptions?: GhostCursorClientOptions;
|
|
19
|
+
}): Promise<void>;
|
|
20
|
+
export declare function disableGhostCursor(options: {
|
|
21
|
+
page: Page;
|
|
22
|
+
}): Promise<void>;
|
|
23
|
+
export declare function applyGhostCursorMouseAction(options: {
|
|
24
|
+
page: Page;
|
|
25
|
+
event: MouseActionEvent;
|
|
26
|
+
}): Promise<void>;
|
|
27
|
+
//# sourceMappingURL=ghost-cursor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ghost-cursor.d.ts","sourceRoot":"","sources":["../src/ghost-cursor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAErE,MAAM,WAAW,wBAAwB;IACvC,KAAK,CAAC,EAAE,SAAS,GAAG,KAAK,GAAG,cAAc,CAAA;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AAmCD,wBAAsB,iBAAiB,CAAC,OAAO,EAAE;IAC/C,IAAI,EAAE,IAAI,CAAA;IACV,aAAa,CAAC,EAAE,wBAAwB,CAAA;CACzC,GAAG,OAAO,CAAC,IAAI,CAAC,CAWhB;AAED,wBAAsB,kBAAkB,CAAC,OAAO,EAAE;IAAE,IAAI,EAAE,IAAI,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAM/E;AAED,wBAAsB,2BAA2B,CAAC,OAAO,EAAE;IACzD,IAAI,EAAE,IAAI,CAAA;IACV,KAAK,EAAE,gBAAgB,CAAA;CACxB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4BhB"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Node-side ghost cursor helpers.
|
|
3
|
+
* Injects the browser bundle and forwards mouse action events to the page overlay.
|
|
4
|
+
*/
|
|
5
|
+
import fs from 'node:fs';
|
|
6
|
+
import path from 'node:path';
|
|
7
|
+
import { fileURLToPath } from 'node:url';
|
|
8
|
+
let ghostCursorCode = null;
|
|
9
|
+
function getGhostCursorCode() {
|
|
10
|
+
if (ghostCursorCode) {
|
|
11
|
+
return ghostCursorCode;
|
|
12
|
+
}
|
|
13
|
+
const currentDir = path.dirname(fileURLToPath(import.meta.url));
|
|
14
|
+
const bundlePath = path.join(currentDir, '..', 'dist', 'ghost-cursor-client.js');
|
|
15
|
+
ghostCursorCode = fs.readFileSync(bundlePath, 'utf-8');
|
|
16
|
+
return ghostCursorCode;
|
|
17
|
+
}
|
|
18
|
+
async function ensureGhostCursorInjected(options) {
|
|
19
|
+
const { page } = options;
|
|
20
|
+
const hasGhostCursor = await page.evaluate(() => {
|
|
21
|
+
return Boolean(globalThis.__playwriterGhostCursor);
|
|
22
|
+
});
|
|
23
|
+
if (hasGhostCursor) {
|
|
24
|
+
return;
|
|
25
|
+
}
|
|
26
|
+
const code = getGhostCursorCode();
|
|
27
|
+
await page.evaluate(code);
|
|
28
|
+
}
|
|
29
|
+
export async function enableGhostCursor(options) {
|
|
30
|
+
const { page, cursorOptions } = options;
|
|
31
|
+
await ensureGhostCursorInjected({ page });
|
|
32
|
+
await page.evaluate(({ optionsFromNode }) => {
|
|
33
|
+
const api = globalThis.__playwriterGhostCursor;
|
|
34
|
+
api?.enable(optionsFromNode);
|
|
35
|
+
}, { optionsFromNode: cursorOptions });
|
|
36
|
+
}
|
|
37
|
+
export async function disableGhostCursor(options) {
|
|
38
|
+
const { page } = options;
|
|
39
|
+
await page.evaluate(() => {
|
|
40
|
+
const api = globalThis.__playwriterGhostCursor;
|
|
41
|
+
api?.disable();
|
|
42
|
+
});
|
|
43
|
+
}
|
|
44
|
+
export async function applyGhostCursorMouseAction(options) {
|
|
45
|
+
const { page, event } = options;
|
|
46
|
+
const applied = await page.evaluate(({ serializedEvent }) => {
|
|
47
|
+
const api = globalThis.__playwriterGhostCursor;
|
|
48
|
+
if (!api) {
|
|
49
|
+
return false;
|
|
50
|
+
}
|
|
51
|
+
api.applyMouseAction(serializedEvent);
|
|
52
|
+
return true;
|
|
53
|
+
}, { serializedEvent: event });
|
|
54
|
+
if (applied) {
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
await ensureGhostCursorInjected({ page });
|
|
58
|
+
await page.evaluate(({ serializedEvent }) => {
|
|
59
|
+
const api = globalThis.__playwriterGhostCursor;
|
|
60
|
+
api?.applyMouseAction(serializedEvent);
|
|
61
|
+
}, { serializedEvent: event });
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=ghost-cursor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ghost-cursor.js","sourceRoot":"","sources":["../src/ghost-cursor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,MAAM,SAAS,CAAA;AACxB,OAAO,IAAI,MAAM,WAAW,CAAA;AAC5B,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAoBxC,IAAI,eAAe,GAAkB,IAAI,CAAA;AAEzC,SAAS,kBAAkB;IACzB,IAAI,eAAe,EAAE,CAAC;QACpB,OAAO,eAAe,CAAA;IACxB,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;IAC/D,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,EAAE,MAAM,EAAE,wBAAwB,CAAC,CAAA;IAChF,eAAe,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAA;IACtD,OAAO,eAAe,CAAA;AACxB,CAAC;AAED,KAAK,UAAU,yBAAyB,CAAC,OAAuB;IAC9D,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAA;IACxB,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;QAC9C,OAAO,OAAO,CAAE,UAAoD,CAAC,uBAAuB,CAAC,CAAA;IAC/F,CAAC,CAAC,CAAA;IAEF,IAAI,cAAc,EAAE,CAAC;QACnB,OAAM;IACR,CAAC;IAED,MAAM,IAAI,GAAG,kBAAkB,EAAE,CAAA;IACjC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAA;AAC3B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CAAC,OAGvC;IACC,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,OAAO,CAAA;IACvC,MAAM,yBAAyB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;IAEzC,MAAM,IAAI,CAAC,QAAQ,CACjB,CAAC,EAAE,eAAe,EAAE,EAAE,EAAE;QACtB,MAAM,GAAG,GAAI,UAAkE,CAAC,uBAAuB,CAAA;QACvG,GAAG,EAAE,MAAM,CAAC,eAAe,CAAC,CAAA;IAC9B,CAAC,EACD,EAAE,eAAe,EAAE,aAAa,EAAE,CACnC,CAAA;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CAAC,OAAuB;IAC9D,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAA;IACxB,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;QACvB,MAAM,GAAG,GAAI,UAAkE,CAAC,uBAAuB,CAAA;QACvG,GAAG,EAAE,OAAO,EAAE,CAAA;IAChB,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAAC,OAGjD;IACC,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,OAAO,CAAA;IAE/B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,QAAQ,CACjC,CAAC,EAAE,eAAe,EAAE,EAAE,EAAE;QACtB,MAAM,GAAG,GAAI,UAAkE,CAAC,uBAAuB,CAAA;QACvG,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,OAAO,KAAK,CAAA;QACd,CAAC;QAED,GAAG,CAAC,gBAAgB,CAAC,eAAe,CAAC,CAAA;QACrC,OAAO,IAAI,CAAA;IACb,CAAC,EACD,EAAE,eAAe,EAAE,KAAK,EAAE,CAC3B,CAAA;IAED,IAAI,OAAO,EAAE,CAAC;QACZ,OAAM;IACR,CAAC;IAED,MAAM,yBAAyB,CAAC,EAAE,IAAI,EAAE,CAAC,CAAA;IACzC,MAAM,IAAI,CAAC,QAAQ,CACjB,CAAC,EAAE,eAAe,EAAE,EAAE,EAAE;QACtB,MAAM,GAAG,GAAI,UAAkE,CAAC,uBAAuB,CAAA;QACvG,GAAG,EAAE,gBAAgB,CAAC,eAAe,CAAC,CAAA;IACxC,CAAC,EACD,EAAE,eAAe,EAAE,KAAK,EAAE,CAC3B,CAAA;AACH,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"htmlrewrite.d.ts","sourceRoot":"","sources":["../src/htmlrewrite.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,iBAAiB;
|
|
1
|
+
{"version":3,"file":"htmlrewrite.d.ts","sourceRoot":"","sources":["../src/htmlrewrite.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAA;IACZ,UAAU,CAAC,EAAE,OAAO,CAAA;IACpB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,aAAa,CAAC,EAAE,MAAM,CAAA;CACvB;AAED,wBAAsB,mBAAmB,CAAC,EACxC,IAAI,EACJ,UAAkB,EAClB,UAAgB,EAChB,aAAmB,GACpB,EAAE,iBAAiB,mBAsXnB"}
|
package/dist/htmlrewrite.js
CHANGED
|
@@ -1,16 +1,7 @@
|
|
|
1
1
|
import posthtml from 'posthtml';
|
|
2
2
|
import beautify from 'posthtml-beautify';
|
|
3
3
|
export async function formatHtmlForPrompt({ html, keepStyles = false, maxAttrLen = 200, maxContentLen = 500, }) {
|
|
4
|
-
const tagsToRemove = [
|
|
5
|
-
'hint',
|
|
6
|
-
'style',
|
|
7
|
-
'link',
|
|
8
|
-
'script',
|
|
9
|
-
'meta',
|
|
10
|
-
'noscript',
|
|
11
|
-
'svg',
|
|
12
|
-
'head',
|
|
13
|
-
];
|
|
4
|
+
const tagsToRemove = ['hint', 'style', 'link', 'script', 'meta', 'noscript', 'svg', 'head'];
|
|
14
5
|
const attributesToKeep = [
|
|
15
6
|
// Standard descriptive attributes
|
|
16
7
|
'label',
|
|
@@ -90,22 +81,17 @@ export async function formatHtmlForPrompt({ html, keepStyles = false, maxAttrLen
|
|
|
90
81
|
if (node.attrs) {
|
|
91
82
|
const newAttrs = {};
|
|
92
83
|
for (const [attr, value] of Object.entries(node.attrs)) {
|
|
93
|
-
const shouldKeep = attr.startsWith('data-') ||
|
|
94
|
-
attributesToKeep.includes(attr);
|
|
84
|
+
const shouldKeep = attr.startsWith('data-') || attributesToKeep.includes(attr);
|
|
95
85
|
if (shouldKeep) {
|
|
96
86
|
// Truncate attribute values
|
|
97
|
-
newAttrs[attr] = typeof value === 'string'
|
|
98
|
-
? truncate(value, maxAttrLen)
|
|
99
|
-
: value;
|
|
87
|
+
newAttrs[attr] = typeof value === 'string' ? truncate(value, maxAttrLen) : value;
|
|
100
88
|
}
|
|
101
89
|
}
|
|
102
90
|
node.attrs = newAttrs;
|
|
103
91
|
}
|
|
104
92
|
// Process content recursively
|
|
105
93
|
if (node.content && Array.isArray(node.content)) {
|
|
106
|
-
node.content = node.content
|
|
107
|
-
.map(processNode)
|
|
108
|
-
.filter(item => {
|
|
94
|
+
node.content = node.content.map(processNode).filter((item) => {
|
|
109
95
|
if (item === null)
|
|
110
96
|
return false;
|
|
111
97
|
if (typeof item === 'string') {
|
|
@@ -118,7 +104,7 @@ export async function formatHtmlForPrompt({ html, keepStyles = false, maxAttrLen
|
|
|
118
104
|
return node;
|
|
119
105
|
};
|
|
120
106
|
// Process all root nodes
|
|
121
|
-
return tree.map(processNode).filter(item => item !== null);
|
|
107
|
+
return tree.map(processNode).filter((item) => item !== null);
|
|
122
108
|
};
|
|
123
109
|
};
|
|
124
110
|
// Plugin to remove aria-hidden="true" subtrees entirely
|
|
@@ -136,9 +122,7 @@ export async function formatHtmlForPrompt({ html, keepStyles = false, maxAttrLen
|
|
|
136
122
|
}
|
|
137
123
|
// Process children recursively
|
|
138
124
|
if (node.content && Array.isArray(node.content)) {
|
|
139
|
-
node.content = node.content
|
|
140
|
-
.map(processNode)
|
|
141
|
-
.filter((item) => item !== null);
|
|
125
|
+
node.content = node.content.map(processNode).filter((item) => item !== null);
|
|
142
126
|
}
|
|
143
127
|
return node;
|
|
144
128
|
};
|
|
@@ -163,9 +147,7 @@ export async function formatHtmlForPrompt({ html, keepStyles = false, maxAttrLen
|
|
|
163
147
|
}
|
|
164
148
|
// Process children recursively
|
|
165
149
|
if (node.content && Array.isArray(node.content)) {
|
|
166
|
-
node.content = node.content
|
|
167
|
-
.map(processNode)
|
|
168
|
-
.filter((item) => item !== null);
|
|
150
|
+
node.content = node.content.map(processNode).filter((item) => item !== null);
|
|
169
151
|
}
|
|
170
152
|
return node;
|
|
171
153
|
};
|
|
@@ -178,15 +160,7 @@ export async function formatHtmlForPrompt({ html, keepStyles = false, maxAttrLen
|
|
|
178
160
|
// - No actionable elements with meaningful attributes
|
|
179
161
|
const removeDecorativeSubtreesPlugin = () => {
|
|
180
162
|
const actionableTags = ['button', 'a', 'input', 'select', 'textarea'];
|
|
181
|
-
const meaningfulAttrs = [
|
|
182
|
-
'aria-label',
|
|
183
|
-
'title',
|
|
184
|
-
'alt',
|
|
185
|
-
'value',
|
|
186
|
-
'placeholder',
|
|
187
|
-
'href',
|
|
188
|
-
'name',
|
|
189
|
-
];
|
|
163
|
+
const meaningfulAttrs = ['aria-label', 'title', 'alt', 'value', 'placeholder', 'href', 'name'];
|
|
190
164
|
// Form elements are always actionable, keep unconditionally
|
|
191
165
|
const formTags = ['input', 'select', 'textarea'];
|
|
192
166
|
// Check if a subtree has any useful content
|
|
@@ -236,23 +210,11 @@ export async function formatHtmlForPrompt({ html, keepStyles = false, maxAttrLen
|
|
|
236
210
|
return node;
|
|
237
211
|
// First process children
|
|
238
212
|
if (node.content && Array.isArray(node.content)) {
|
|
239
|
-
node.content = node.content
|
|
240
|
-
.map(processNode)
|
|
241
|
-
.filter((item) => item !== null);
|
|
213
|
+
node.content = node.content.map(processNode).filter((item) => item !== null);
|
|
242
214
|
}
|
|
243
215
|
// After processing children, check if this subtree is now decorative
|
|
244
216
|
// Skip root-level semantic elements (body, main, etc.)
|
|
245
|
-
const semanticTags = [
|
|
246
|
-
'html',
|
|
247
|
-
'body',
|
|
248
|
-
'main',
|
|
249
|
-
'header',
|
|
250
|
-
'footer',
|
|
251
|
-
'nav',
|
|
252
|
-
'section',
|
|
253
|
-
'article',
|
|
254
|
-
'aside',
|
|
255
|
-
];
|
|
217
|
+
const semanticTags = ['html', 'body', 'main', 'header', 'footer', 'nav', 'section', 'article', 'aside'];
|
|
256
218
|
if (semanticTags.includes(node.tag.toLowerCase())) {
|
|
257
219
|
return node;
|
|
258
220
|
}
|
|
@@ -288,7 +250,7 @@ export async function formatHtmlForPrompt({ html, keepStyles = false, maxAttrLen
|
|
|
288
250
|
// - has no attributes
|
|
289
251
|
// - has exactly one non-whitespace child that is an element
|
|
290
252
|
if (hasNoAttrs(node) && node.content && Array.isArray(node.content)) {
|
|
291
|
-
const nonWhitespaceChildren = node.content.filter(c => !isWhitespaceOnly(c));
|
|
253
|
+
const nonWhitespaceChildren = node.content.filter((c) => !isWhitespaceOnly(c));
|
|
292
254
|
if (nonWhitespaceChildren.length === 1) {
|
|
293
255
|
const onlyChild = nonWhitespaceChildren[0];
|
|
294
256
|
// If the only child is also an element (not text), unwrap
|
|
@@ -322,14 +284,14 @@ export async function formatHtmlForPrompt({ html, keepStyles = false, maxAttrLen
|
|
|
322
284
|
if (!node.tag)
|
|
323
285
|
return false;
|
|
324
286
|
const hasAttrs = node.attrs && Object.keys(node.attrs).length > 0;
|
|
325
|
-
const hasContent = node.content && node.content.some(c => typeof c === 'string' ? c.trim().length > 0 : true);
|
|
287
|
+
const hasContent = node.content && node.content.some((c) => (typeof c === 'string' ? c.trim().length > 0 : true));
|
|
326
288
|
return !hasAttrs && !hasContent;
|
|
327
289
|
};
|
|
328
290
|
const removeEmpty = (content) => {
|
|
329
291
|
if (!content || !Array.isArray(content))
|
|
330
292
|
return content;
|
|
331
293
|
return content
|
|
332
|
-
.map(node => {
|
|
294
|
+
.map((node) => {
|
|
333
295
|
if (typeof node === 'string')
|
|
334
296
|
return node;
|
|
335
297
|
if (node.content) {
|
|
@@ -337,7 +299,7 @@ export async function formatHtmlForPrompt({ html, keepStyles = false, maxAttrLen
|
|
|
337
299
|
}
|
|
338
300
|
return node;
|
|
339
301
|
})
|
|
340
|
-
.filter(node => !isEmptyElement(node));
|
|
302
|
+
.filter((node) => !isEmptyElement(node));
|
|
341
303
|
};
|
|
342
304
|
// Apply multiple passes until stable
|
|
343
305
|
let result = removeEmpty(tree);
|
|
@@ -363,12 +325,12 @@ export async function formatHtmlForPrompt({ html, keepStyles = false, maxAttrLen
|
|
|
363
325
|
rules: {
|
|
364
326
|
indent: 1, // 1-space indent
|
|
365
327
|
blankLines: false, // no extra blank lines
|
|
366
|
-
maxlen: 100000 // effectively never wrap by content length
|
|
328
|
+
maxlen: 100000, // effectively never wrap by content length
|
|
367
329
|
},
|
|
368
330
|
jsBeautifyOptions: {
|
|
369
331
|
wrap_line_length: 0, // disable js-beautify wrapping
|
|
370
|
-
preserve_newlines: false // reduce stray newlines
|
|
371
|
-
}
|
|
332
|
+
preserve_newlines: false, // reduce stray newlines
|
|
333
|
+
},
|
|
372
334
|
}));
|
|
373
335
|
// Process with await
|
|
374
336
|
const result = await processor.process(html);
|
package/dist/htmlrewrite.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"htmlrewrite.js","sourceRoot":"","sources":["../src/htmlrewrite.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"htmlrewrite.js","sourceRoot":"","sources":["../src/htmlrewrite.ts"],"names":[],"mappings":"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"}
|