cursorflow 2.2.0__py3-none-any.whl → 2.2.1__py3-none-any.whl
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.
- cursorflow/__init__.py +1 -1
- cursorflow/cli.py +5 -4
- cursorflow/core/browser_controller.py +25 -0
- {cursorflow-2.2.0.dist-info → cursorflow-2.2.1.dist-info}/METADATA +1 -1
- {cursorflow-2.2.0.dist-info → cursorflow-2.2.1.dist-info}/RECORD +9 -9
- {cursorflow-2.2.0.dist-info → cursorflow-2.2.1.dist-info}/WHEEL +0 -0
- {cursorflow-2.2.0.dist-info → cursorflow-2.2.1.dist-info}/entry_points.txt +0 -0
- {cursorflow-2.2.0.dist-info → cursorflow-2.2.1.dist-info}/licenses/LICENSE +0 -0
- {cursorflow-2.2.0.dist-info → cursorflow-2.2.1.dist-info}/top_level.txt +0 -0
cursorflow/__init__.py
CHANGED
cursorflow/cli.py
CHANGED
@@ -9,6 +9,7 @@ import click
|
|
9
9
|
import asyncio
|
10
10
|
import json
|
11
11
|
import os
|
12
|
+
import time
|
12
13
|
from pathlib import Path
|
13
14
|
from typing import Dict
|
14
15
|
from rich.console import Console
|
@@ -86,13 +87,13 @@ def main(ctx):
|
|
86
87
|
help='Timeout in seconds for wait operations')
|
87
88
|
@click.option('--wait-for-network-idle', is_flag=True,
|
88
89
|
help='Wait for network to be idle (no requests for 2s)')
|
89
|
-
@click.option('--click',
|
90
|
+
@click.option('--click', multiple=True,
|
90
91
|
help='Click element by selector (can specify multiple)')
|
91
|
-
@click.option('--hover',
|
92
|
+
@click.option('--hover', multiple=True,
|
92
93
|
help='Hover over element by selector')
|
93
|
-
@click.option('--fill',
|
94
|
+
@click.option('--fill', multiple=True,
|
94
95
|
help='Fill input field. Format: selector=value')
|
95
|
-
@click.option('--screenshot',
|
96
|
+
@click.option('--screenshot', multiple=True,
|
96
97
|
help='Capture screenshot with name')
|
97
98
|
@click.option('--open-trace', is_flag=True,
|
98
99
|
help='Automatically open Playwright trace viewer after test')
|
@@ -1798,6 +1798,31 @@ class BrowserController:
|
|
1798
1798
|
return selectors;
|
1799
1799
|
}
|
1800
1800
|
|
1801
|
+
// Phase 2.1: Event Handler Capture
|
1802
|
+
function getEventHandlers(element) {
|
1803
|
+
const handlers = {};
|
1804
|
+
|
1805
|
+
// Common event handler attributes
|
1806
|
+
const eventAttributes = [
|
1807
|
+
'onclick', 'ondblclick', 'onmousedown', 'onmouseup',
|
1808
|
+
'onmouseover', 'onmouseout', 'onmousemove', 'onmouseenter', 'onmouseleave',
|
1809
|
+
'onkeydown', 'onkeyup', 'onkeypress',
|
1810
|
+
'onsubmit', 'onchange', 'oninput', 'onfocus', 'onblur',
|
1811
|
+
'onload', 'onerror', 'onabort',
|
1812
|
+
'ontouchstart', 'ontouchend', 'ontouchmove',
|
1813
|
+
'ondrag', 'ondrop', 'ondragover', 'ondragstart', 'ondragend'
|
1814
|
+
];
|
1815
|
+
|
1816
|
+
eventAttributes.forEach(attr => {
|
1817
|
+
const handler = element.getAttribute(attr);
|
1818
|
+
if (handler) {
|
1819
|
+
handlers[attr] = handler;
|
1820
|
+
}
|
1821
|
+
});
|
1822
|
+
|
1823
|
+
return Object.keys(handlers).length > 0 ? handlers : null;
|
1824
|
+
}
|
1825
|
+
|
1801
1826
|
// Enhanced accessibility analysis
|
1802
1827
|
function getAccessibilityData(element) {
|
1803
1828
|
return {
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.4
|
2
2
|
Name: cursorflow
|
3
|
-
Version: 2.2.
|
3
|
+
Version: 2.2.1
|
4
4
|
Summary: 🔥 Complete page intelligence for AI-driven development with Hot Reload Intelligence - captures DOM, network, console, performance, HMR events, and comprehensive page analysis
|
5
5
|
Author-email: GeekWarrior Development <rbush@cooltheory.com>
|
6
6
|
License-Expression: MIT
|
@@ -1,14 +1,14 @@
|
|
1
|
-
cursorflow/__init__.py,sha256=
|
1
|
+
cursorflow/__init__.py,sha256=3szUCSDj7rxLr4NkfDoXWq7BWqMf7__8vTFg15LWcXo,2763
|
2
2
|
cursorflow/auto_init.py,sha256=dXQaXXiXe4wkUP-jd8fcJ5fYVt7ASdTb47b7SzXymOM,6122
|
3
3
|
cursorflow/auto_updater.py,sha256=oQ12TIMZ6Cm3HF-x9iRWFtvOLkRh-JWPqitS69-4roE,7851
|
4
|
-
cursorflow/cli.py,sha256=
|
4
|
+
cursorflow/cli.py,sha256=qSungpsi9OgL55w-LqgmGj-S7eJhfJq7ve_QwSoSEhI,43588
|
5
5
|
cursorflow/install_cursorflow_rules.py,sha256=DsZ0680y9JMuTKFXjdgYtOKIEAjBMsdwL8LmA9WEb5A,11864
|
6
6
|
cursorflow/post_install.py,sha256=WieBiKWG0qBAQpF8iMVWUyb9Fr2Xky9qECTMPrlAbpE,2678
|
7
7
|
cursorflow/updater.py,sha256=SroSQHQi5cYyzcOK_bf-WzmQmE7yeOs8qo3r__j-Z6E,19583
|
8
8
|
cursorflow/core/action_validator.py,sha256=SCk3w_62D1y0cCRDOajK8L44-abSj_KpnUBgR_yNVW4,6846
|
9
9
|
cursorflow/core/agent.py,sha256=f3lecgEzDRDdGTVccAtorpLGfNJJ49bbsQAmgr0vNGg,10136
|
10
10
|
cursorflow/core/auth_handler.py,sha256=oRafO6ZdxoHryBIvHsrNV8TECed4GXpJsdEiH0KdPPk,17149
|
11
|
-
cursorflow/core/browser_controller.py,sha256=
|
11
|
+
cursorflow/core/browser_controller.py,sha256=jA3zmdULJb4FLn3pS3zlK5RmbpRK8k4UVgwiVM6_pts,146990
|
12
12
|
cursorflow/core/browser_engine.py,sha256=7N9hPOyDrEhLWYgZW2981N9gKlHF6Lbp7D7h0zBzuz8,14851
|
13
13
|
cursorflow/core/config_validator.py,sha256=HRtONSOmM0Xxt3-ok3xwnBADRiNnI0nNOMaS2OqOkDk,7286
|
14
14
|
cursorflow/core/css_iterator.py,sha256=whLCIwbHZEWaH1HCbmqhNX5zrh_fL-r3hsxKjYsukcE,16478
|
@@ -30,9 +30,9 @@ cursorflow/log_sources/ssh_remote.py,sha256=kZRpLpiO7cLd67wlCiTvz4Prwx1_Vu3ytB5K
|
|
30
30
|
cursorflow/rules/__init__.py,sha256=gPcA-IkhXj03sl7cvZV0wwo7CtEkcyuKs4y0F5oQbqE,458
|
31
31
|
cursorflow/rules/cursorflow-installation.mdc,sha256=D55pzzDPAVVbE3gAtKPUGoT-2fvB-FI2l6yrTdzUIEo,10208
|
32
32
|
cursorflow/rules/cursorflow-usage.mdc,sha256=hCbA9koCtRoeLOkB-PXmLlGzsag_15RuOveOE_R4JZ0,21628
|
33
|
-
cursorflow-2.2.
|
34
|
-
cursorflow-2.2.
|
35
|
-
cursorflow-2.2.
|
36
|
-
cursorflow-2.2.
|
37
|
-
cursorflow-2.2.
|
38
|
-
cursorflow-2.2.
|
33
|
+
cursorflow-2.2.1.dist-info/licenses/LICENSE,sha256=e4QbjAsj3bW-xgQOvQelr8sGLYDoqc48k6cKgCr_pBU,1080
|
34
|
+
cursorflow-2.2.1.dist-info/METADATA,sha256=gnoZ9OAIuFBdOyJ9Kcow_yIB4kGQwTt4G7KD6nkWxcQ,14014
|
35
|
+
cursorflow-2.2.1.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
36
|
+
cursorflow-2.2.1.dist-info/entry_points.txt,sha256=-Ed_n4Uff7wClEtWS-Py6xmQabecB9f0QAOjX0w7ljA,51
|
37
|
+
cursorflow-2.2.1.dist-info/top_level.txt,sha256=t1UZwRyZP4u-ng2CEcNHmk_ZT4ibQxoihB2IjTF7ovc,11
|
38
|
+
cursorflow-2.2.1.dist-info/RECORD,,
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|