@dyyz1993/agent-browser 0.9.2 → 0.11.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (116) hide show
  1. package/dist/__tests__/utils/parseCli.d.ts +1 -0
  2. package/dist/__tests__/utils/parseCli.d.ts.map +1 -1
  3. package/dist/__tests__/utils/parseCli.js +18 -10
  4. package/dist/__tests__/utils/parseCli.js.map +1 -1
  5. package/dist/actions.d.ts.map +1 -1
  6. package/dist/actions.js +63 -3
  7. package/dist/actions.js.map +1 -1
  8. package/dist/browser.d.ts +46 -2
  9. package/dist/browser.d.ts.map +1 -1
  10. package/dist/browser.js +343 -13
  11. package/dist/browser.js.map +1 -1
  12. package/dist/cli/commands.d.ts.map +1 -1
  13. package/dist/cli/commands.js +8 -3
  14. package/dist/cli/commands.js.map +1 -1
  15. package/dist/cli/connection.d.ts.map +1 -1
  16. package/dist/cli/connection.js +39 -1
  17. package/dist/cli/connection.js.map +1 -1
  18. package/dist/cli/help.d.ts.map +1 -1
  19. package/dist/cli/help.js +27 -20
  20. package/dist/cli/help.js.map +1 -1
  21. package/dist/cli/output.d.ts.map +1 -1
  22. package/dist/cli/output.js +5 -0
  23. package/dist/cli/output.js.map +1 -1
  24. package/dist/cli.js +20 -0
  25. package/dist/cli.js.map +1 -1
  26. package/dist/daemon.d.ts.map +1 -1
  27. package/dist/daemon.js +147 -1
  28. package/dist/daemon.js.map +1 -1
  29. package/dist/message-bridge.d.ts.map +1 -1
  30. package/dist/message-bridge.js +22 -4
  31. package/dist/message-bridge.js.map +1 -1
  32. package/dist/openapi.d.ts +22 -0
  33. package/dist/openapi.d.ts.map +1 -0
  34. package/dist/openapi.js +382 -0
  35. package/dist/openapi.js.map +1 -0
  36. package/dist/protocol.d.ts.map +1 -1
  37. package/dist/protocol.js +18 -0
  38. package/dist/protocol.js.map +1 -1
  39. package/dist/recorder/inject.js +61 -134
  40. package/dist/stream-server-standalone.d.ts +10 -0
  41. package/dist/stream-server-standalone.d.ts.map +1 -1
  42. package/dist/stream-server-standalone.js +594 -74
  43. package/dist/stream-server-standalone.js.map +1 -1
  44. package/dist/stream-server.d.ts +67 -2
  45. package/dist/stream-server.d.ts.map +1 -1
  46. package/dist/stream-server.js +371 -51
  47. package/dist/stream-server.js.map +1 -1
  48. package/dist/swagger-ui.d.ts +6 -0
  49. package/dist/swagger-ui.d.ts.map +1 -0
  50. package/dist/swagger-ui.js +51 -0
  51. package/dist/swagger-ui.js.map +1 -0
  52. package/dist/test-live.d.ts +2 -0
  53. package/dist/test-live.d.ts.map +1 -0
  54. package/dist/test-live.js +333 -0
  55. package/dist/test-live.js.map +1 -0
  56. package/dist/types.d.ts +7 -1
  57. package/dist/types.d.ts.map +1 -1
  58. package/dist/types.js.map +1 -1
  59. package/dist/viewer-html.d.ts.map +1 -1
  60. package/dist/viewer-html.js +270 -58
  61. package/dist/viewer-html.js.map +1 -1
  62. package/dist/viewer-script.d.ts +20 -2
  63. package/dist/viewer-script.d.ts.map +1 -1
  64. package/dist/viewer-script.js +911 -154
  65. package/dist/viewer-script.js.map +1 -1
  66. package/package.json +1 -1
  67. package/scripts/postinstall.js +6 -32
  68. package/scripts/test-cli-help.sh +51 -0
  69. package/scripts/verify-form.sh +67 -0
  70. package/scripts/verify-login.sh +65 -0
  71. package/scripts/verify-recording.sh +80 -0
  72. package/scripts/verify-upload.sh +41 -0
  73. package/skills/agent-browser/SKILL.md +297 -160
  74. package/skills/agent-browser/references/commands.md +3 -0
  75. package/skills/agent-browser/references/mobile-viewer.md +188 -0
  76. package/skills/agent-browser/references/network-monitoring.md +232 -0
  77. package/skills/agent-browser/references/recorder.md +319 -0
  78. package/skills/agent-browser/references/viewer-mode.md +148 -0
  79. package/skills/agent-browser/templates/api-interception.sh +3 -1
  80. package/skills/agent-browser/templates/data-extraction.sh +8 -4
  81. package/skills/agent-browser/templates/form-automation.sh +18 -23
  82. package/skills/agent-browser/templates/network-intercept-crawl.sh +256 -0
  83. package/skills/agent-browser/templates/recorder-workflow.sh +51 -0
  84. package/skills/agent-browser/templates/viewer-remote.sh +41 -0
  85. package/dist/__tests__/test-iframe.d.ts +0 -2
  86. package/dist/__tests__/test-iframe.d.ts.map +0 -1
  87. package/dist/__tests__/test-iframe.js +0 -52
  88. package/dist/__tests__/test-iframe.js.map +0 -1
  89. package/dist/cli-new.d.ts +0 -3
  90. package/dist/cli-new.d.ts.map +0 -1
  91. package/dist/cli-new.js +0 -308
  92. package/dist/cli-new.js.map +0 -1
  93. package/dist/cli-old.d.ts +0 -3
  94. package/dist/cli-old.d.ts.map +0 -1
  95. package/dist/cli-old.js +0 -1101
  96. package/dist/cli-old.js.map +0 -1
  97. package/dist/recorder/binding.d.ts +0 -24
  98. package/dist/recorder/binding.d.ts.map +0 -1
  99. package/dist/recorder/binding.js +0 -215
  100. package/dist/recorder/binding.js.map +0 -1
  101. package/dist/recorder/index.d.ts +0 -4
  102. package/dist/recorder/index.d.ts.map +0 -1
  103. package/dist/recorder/index.js +0 -4
  104. package/dist/recorder/index.js.map +0 -1
  105. package/dist/recorder/recorder.d.ts +0 -19
  106. package/dist/recorder/recorder.d.ts.map +0 -1
  107. package/dist/recorder/recorder.js +0 -101
  108. package/dist/recorder/recorder.js.map +0 -1
  109. package/dist/recorder/store.d.ts +0 -22
  110. package/dist/recorder/store.d.ts.map +0 -1
  111. package/dist/recorder/store.js +0 -150
  112. package/dist/recorder/store.js.map +0 -1
  113. package/dist/recorder/types.d.ts +0 -73
  114. package/dist/recorder/types.d.ts.map +0 -1
  115. package/dist/recorder/types.js +0 -5
  116. package/dist/recorder/types.js.map +0 -1
@@ -0,0 +1,256 @@
1
+ #!/bin/bash
2
+ # Network Interception Data Collection Template
3
+ set -euo pipefail
4
+ # Usage: ./network-intercept-crawl.sh <url> <output-dir> [max-scrolls]
5
+ #
6
+ # This script demonstrates how to capture API data using network interception.
7
+ # It handles infinite scroll pages that load data via AJAX/fetch calls.
8
+ #
9
+ # Prerequisites:
10
+ # - agent-browser installed and in PATH
11
+ # - jq for JSON processing
12
+ #
13
+ # Environment Variables:
14
+ # SCROLL_CONTAINER - CSS selector for scroll container (default: auto-detect)
15
+ # SCROLL_DELAY - Seconds to wait after scroll (default: 2)
16
+ # MAX_NO_NEW - Stop after N scrolls with no new data (default: 3)
17
+ #
18
+ # Examples:
19
+ # ./network-intercept-crawl.sh https://example.com/feed ./output 20
20
+ # SCROLL_CONTAINER=".feed-list" ./network-intercept-crawl.sh https://example.com/products ./data
21
+
22
+ set -e
23
+
24
+ # Configuration
25
+ TARGET_URL="${1:-https://example.com}"
26
+ OUTPUT_DIR="${2:-./collected-data}"
27
+ MAX_SCROLLS="${3:-20}"
28
+ SCROLL_CONTAINER="${SCROLL_CONTAINER:-}" # CSS selector for scroll container (empty = auto-detect)
29
+ SCROLL_DELAY="${SCROLL_DELAY:-2}" # Seconds to wait after scroll
30
+ MAX_NO_NEW="${MAX_NO_NEW:-3}" # Stop after N scrolls with no new data
31
+
32
+ mkdir -p "$OUTPUT_DIR"
33
+
34
+ echo "=========================================="
35
+ echo " Network Interception Data Collection"
36
+ echo "=========================================="
37
+ echo " URL: $TARGET_URL"
38
+ echo " Output: $OUTPUT_DIR"
39
+ echo " Max scrolls: $MAX_SCROLLS"
40
+ echo "=========================================="
41
+
42
+ # Cleanup function
43
+ cleanup() {
44
+ echo ""
45
+ echo "[Cleanup] Closing browser..."
46
+ agent-browser kill 2>/dev/null || true
47
+ }
48
+ trap cleanup EXIT
49
+
50
+ # Step 1: Start fresh
51
+ echo ""
52
+ echo "[Step 1] Starting browser session..."
53
+ agent-browser kill 2>/dev/null || true
54
+ sleep 1
55
+
56
+ # Step 2: Enable network interception
57
+ echo "[Step 2] Enabling network request capture..."
58
+ agent-browser network requests --capture-response
59
+
60
+ # Step 3: Navigate to target page
61
+ echo "[Step 3] Opening target URL..."
62
+ agent-browser open "$TARGET_URL"
63
+ agent-browser wait --load networkidle
64
+ sleep 2
65
+
66
+ # Step 4: Auto-detect scroll container if not specified
67
+ if [ -z "$SCROLL_CONTAINER" ]; then
68
+ echo "[Step 4] Auto-detecting scroll container..."
69
+ DETECTED_CONTAINER=$(agent-browser eval --stdin <<'EOF'
70
+ (() => {
71
+ // Check for common scroll container patterns
72
+ const selectors = [
73
+ '.simulation-area',
74
+ '.feed-container',
75
+ '.scroll-container',
76
+ '[class*="scroll"]',
77
+ '[class*="feed"]',
78
+ '[class*="list"]',
79
+ '.content',
80
+ 'main'
81
+ ];
82
+
83
+ for (const sel of selectors) {
84
+ const el = document.querySelector(sel);
85
+ if (el && el.scrollHeight > el.clientHeight) {
86
+ return sel;
87
+ }
88
+ }
89
+ return ''; // Use window scroll
90
+ })()
91
+ EOF
92
+ )
93
+ # Extract container from JSON response
94
+ SCROLL_CONTAINER=$(echo "$DETECTED_CONTAINER" | jq -r '.' 2>/dev/null || echo "")
95
+
96
+ if [ -n "$SCROLL_CONTAINER" ] && [ "$SCROLL_CONTAINER" != "null" ] && [ "$SCROLL_CONTAINER" != "" ]; then
97
+ echo " Detected container: $SCROLL_CONTAINER"
98
+ else
99
+ echo " No container detected, using window scroll"
100
+ SCROLL_CONTAINER=""
101
+ fi
102
+ else
103
+ echo "[Step 4] Using specified container: $SCROLL_CONTAINER"
104
+ fi
105
+
106
+ # Step 5: Extract initial data
107
+ echo "[Step 5] Extracting initial captured requests..."
108
+
109
+ # Function to get all captured requests
110
+ get_all_requests() {
111
+ agent-browser network requests --capture-response --type json --json 2>/dev/null
112
+ }
113
+
114
+ # Function to count requests with response bodies
115
+ count_valid_requests() {
116
+ local json_data="$1"
117
+ echo "$json_data" | jq '.data.requests | map(select(.responseBody != null)) | length' 2>/dev/null || echo "0"
118
+ }
119
+
120
+ # Function to count unique IDs in data
121
+ count_unique_ids() {
122
+ local json_data="$1"
123
+ local id_field="${2:-id}"
124
+ echo "$json_data" | jq -c "[.data.requests[].responseBody | select(. != null) | .[]?.${id_field}] | unique | length" 2>/dev/null || echo "0"
125
+ }
126
+
127
+ # Initialize tracking - cumulative approach (no clearing!)
128
+ ALL_DATA_FILE="$OUTPUT_DIR/all-captures.json"
129
+ PROCESSED_COUNT=0 # Track how many requests we've already processed
130
+
131
+ # Get initial data
132
+ get_all_requests > "$ALL_DATA_FILE"
133
+ TOTAL_REQUESTS=$(count_valid_requests "$(cat "$ALL_DATA_FILE")")
134
+ INITIAL_IDS=$(count_unique_ids "$(cat "$ALL_DATA_FILE")")
135
+ PROCESSED_COUNT=$TOTAL_REQUESTS
136
+
137
+ echo " Initial capture: $TOTAL_REQUESTS requests, ~$INITIAL_IDS unique items"
138
+ echo " Using cumulative mode (no data loss from clearing)"
139
+
140
+ # Step 6: Scroll to load more data
141
+ echo ""
142
+ echo "[Step 6] Scrolling to load more data..."
143
+
144
+ NO_NEW_COUNT=0
145
+ SCROLL_COUNT=0
146
+
147
+ while [ $SCROLL_COUNT -lt $MAX_SCROLLS ]; do
148
+ SCROLL_COUNT=$((SCROLL_COUNT + 1))
149
+
150
+ # Perform scroll
151
+ if [ -n "$SCROLL_CONTAINER" ]; then
152
+ # Scroll within specific container
153
+ agent-browser eval --stdin <<EOF
154
+ (() => {
155
+ const container = document.querySelector('$SCROLL_CONTAINER');
156
+ if (container) {
157
+ container.scrollTop = container.scrollHeight;
158
+ return { scrolled: true, scrollTop: container.scrollTop };
159
+ }
160
+ return { scrolled: false, error: 'Container not found' };
161
+ })()
162
+ EOF
163
+ else
164
+ # Scroll the page
165
+ agent-browser scroll down 1000
166
+ fi
167
+
168
+ # Wait for new requests
169
+ sleep "$SCROLL_DELAY"
170
+
171
+ # Get ALL requests (cumulative, no clearing!)
172
+ get_all_requests > "$ALL_DATA_FILE"
173
+
174
+ # Count total requests now
175
+ NEW_TOTAL=$(count_valid_requests "$(cat "$ALL_DATA_FILE")")
176
+
177
+ # Calculate how many new requests we got (offset from last processed)
178
+ NEW_COUNT=$((NEW_TOTAL - PROCESSED_COUNT))
179
+
180
+ if [ "$NEW_COUNT" -le 0 ]; then
181
+ echo " Scroll $SCROLL_COUNT: No new requests captured (total: $NEW_TOTAL)"
182
+ NO_NEW_COUNT=$((NO_NEW_COUNT + 1))
183
+
184
+ if [ $NO_NEW_COUNT -ge $MAX_NO_NEW ]; then
185
+ echo ""
186
+ echo " [Stop] Consecutive $MAX_NO_NEW scrolls with no new data"
187
+ break
188
+ fi
189
+ else
190
+ echo " Scroll $SCROLL_COUNT: Captured $NEW_COUNT new requests (total: $NEW_TOTAL)"
191
+
192
+ # Extract only NEW requests using offset
193
+ if [ $PROCESSED_COUNT -gt 0 ]; then
194
+ jq ".data.requests[$PROCESSED_COUNT:]" "$ALL_DATA_FILE" > "$OUTPUT_DIR/scroll-${SCROLL_COUNT}-new.json" 2>/dev/null || true
195
+ else
196
+ jq '.data.requests' "$ALL_DATA_FILE" > "$OUTPUT_DIR/scroll-${SCROLL_COUNT}-new.json" 2>/dev/null || true
197
+ fi
198
+
199
+ # Update processed count
200
+ PROCESSED_COUNT=$NEW_TOTAL
201
+ NO_NEW_COUNT=0
202
+ fi
203
+ done
204
+
205
+ # Step 7: Extract and save final data
206
+ echo ""
207
+ echo "[Step 7] Processing collected data..."
208
+
209
+ # Extract response bodies from all captured requests
210
+ OUTPUT_DATA="$OUTPUT_DIR/collected-data.json"
211
+ jq '
212
+ .data.requests |
213
+ map(select(.responseBody != null)) |
214
+ map({
215
+ url: .url,
216
+ method: .method,
217
+ status: .status,
218
+ contentType: .contentType,
219
+ timestamp: .timestamp,
220
+ data: .responseBody
221
+ })
222
+ ' "$ALL_DATA_FILE" > "$OUTPUT_DATA" 2>/dev/null || echo "[]" > "$OUTPUT_DATA"
223
+
224
+ TOTAL_ITEMS=$(jq 'map(select(.data != null and .data != [])) | length' "$OUTPUT_DATA")
225
+ UNIQUE_IDS=$(count_unique_ids "$(cat "$ALL_DATA_FILE")")
226
+
227
+ echo " Total API responses captured: $TOTAL_ITEMS"
228
+ echo " Unique items identified: $UNIQUE_IDS"
229
+
230
+ # Save summary
231
+ SUMMARY_FILE="$OUTPUT_DIR/summary.json"
232
+ jq -n "
233
+ {
234
+ collectedAt: \"$(date -Iseconds)\",
235
+ targetUrl: \"$TARGET_URL\",
236
+ scrollContainer: \"$SCROLL_CONTAINER\",
237
+ totalScrolls: $SCROLL_COUNT,
238
+ totalRequests: $TOTAL_ITEMS,
239
+ uniqueItems: $UNIQUE_IDS,
240
+ mode: \"cumulative-no-clear\",
241
+ outputFiles: [
242
+ \"collected-data.json\",
243
+ \"all-captures.json\"
244
+ ]
245
+ }
246
+ " > "$SUMMARY_FILE"
247
+
248
+ echo ""
249
+ echo "=========================================="
250
+ echo " Collection Complete"
251
+ echo "=========================================="
252
+ echo " Output directory: $OUTPUT_DIR"
253
+ echo " Total responses: $TOTAL_ITEMS"
254
+ echo " Files created:"
255
+ ls -la "$OUTPUT_DIR"
256
+ echo "=========================================="
@@ -0,0 +1,51 @@
1
+ #!/usr/bin/env bash
2
+ # Template: Recorder Workflow
3
+ # Purpose: Record browser actions, save as YAML, replay later
4
+ # Usage: ./recorder-workflow.sh [url] [output.yaml]
5
+ #
6
+ # Records your interactions into a replayable YAML workflow file.
7
+ # Useful for test automation, demo creation, and regression testing.
8
+
9
+ set -euo pipefail
10
+
11
+ URL="${1:?https://example.com/form}"
12
+ OUTPUT="${2:-recording-$(date +%Y%m%d-%H%M%S).yaml}"
13
+ SESSION="record-$(date +%s)"
14
+
15
+ echo "=== Recorder Workflow: $URL ==="
16
+
17
+ # Step 1: Start recording
18
+ agent-browser recorder start --session "$SESSION"
19
+ echo "Recording started on session: $SESSION"
20
+
21
+ # Step 2: Navigate and perform workflow
22
+ agent-browser --session "$SESSION" open "$URL"
23
+ agent-browser --session "$SESSION" wait --load networkidle
24
+
25
+ echo ""
26
+ echo "Form structure (copy refs from below):"
27
+ agent-browser --session "$SESSION" snapshot -i
28
+
29
+ # Step 3: Perform your actions here (uncomment/customize):
30
+ #
31
+ # agent-browser --session "$SESSION" fill @e1 "user@example.com"
32
+ # agent-browser --session "$SESSION" fill @e2 "password123"
33
+ # agent-browser --session "$SESSION" click @e3
34
+ # agent-browser --session "$SESSION" wait --load networkidle
35
+ # agent-browser --session "$SESSION" snapshot -i # Verify
36
+
37
+ echo ""
38
+ echo "Waiting ${TIMEOUT:-10}s before stopping recording..."
39
+ sleep "${TIMEOUT:-10}"
40
+
41
+ # Step 4: Stop recording and save
42
+ agent-browser recorder stop --session "$SESSION" --output "$OUTPUT"
43
+ echo ""
44
+ echo "Saved recording to: $OUTPUT"
45
+ echo ""
46
+ echo "To replay:"
47
+ echo " agent-browser recorder replay $OUTPUT"
48
+
49
+ # Cleanup
50
+ agent-browser --session "$SESSION" close
51
+ echo "Done"
@@ -0,0 +1,41 @@
1
+ #!/usr/bin/env bash
2
+ # Template: Viewer Remote Control Workflow
3
+ # Purpose: Open browser, start viewer, interact remotely via streaming UI
4
+ # Usage: ./viewer-remote.sh [url] [timeout-seconds]
5
+ #
6
+ # The viewer streams real-time browser frames to your local browser.
7
+ # On touch devices, you get touchpad + input panel for mobile control.
8
+
9
+ set -euo pipefail
10
+
11
+ URL="${1:?https://www.baidu.com}"
12
+ TIMEOUT="${2:-300}"
13
+ SESSION="viewer-$(date +%s)"
14
+
15
+ echo "=== Viewer Remote Control: $URL ==="
16
+
17
+ # Step 1: Launch browser (headed so you can see it locally too)
18
+ agent-browser --session "$SESSION" --headed open "$URL"
19
+ agent-browser --session "$SESSION" wait --load networkidle
20
+
21
+ # Step 2: Start viewer and get connection URL
22
+ VIEWER_INFO=$(agent-browser --session "$SESSION" viewer --json)
23
+ echo "Viewer info: $VIEWER_INFO"
24
+
25
+ # Extract URL (requires jq)
26
+ VIEWER_URL=$(echo "$VIEWER_INFO" | jq -r '.url // 2>/dev/null || echo "Check port 5005 manually")
27
+ echo ""
28
+ echo "Open this URL in your browser:"
29
+ echo " $VIEWER_URL"
30
+ echo ""
31
+ echo "Tips:"
32
+ echo " - Desktop: Click/drag/scroll on the streamed screen area"
33
+ echo " - Mobile: Use touchpad at bottom for cursor, tap inputs for text panel"
34
+ echo " - Tap a remote input field to open mobile text input"
35
+ echo ""
36
+ echo "Viewer will auto-close after ${TIMEOUT}s..."
37
+ sleep "$TIMEOUT"
38
+
39
+ # Cleanup
40
+ agent-browser --session "$SESSION" close
41
+ echo "Done"
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=test-iframe.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-iframe.d.ts","sourceRoot":"","sources":["../../src/__tests__/test-iframe.ts"],"names":[],"mappings":""}
@@ -1,52 +0,0 @@
1
- import { chromium } from 'playwright-core';
2
- async function test() {
3
- const browser = await chromium.launch({ headless: true });
4
- const context = await browser.newContext();
5
- const page = await context.newPage();
6
- // Listen for frame navigated events
7
- page.on('framenavigated', (frame) => {
8
- console.log('Frame navigated:', frame.url());
9
- });
10
- // Listen for console events
11
- page.on('console', (msg) => {
12
- console.log('Console:', msg.type(), msg.text());
13
- });
14
- // Listen for page errors
15
- page.on('pageerror', (error) => {
16
- console.log('Page error:', error.message);
17
- });
18
- // Listen for request failed
19
- page.on('requestfailed', (request) => {
20
- console.log('Request failed:', request.url(), request.failure()?.errorText);
21
- });
22
- await page.goto('https://www.example.com');
23
- // Check CSP headers
24
- const response = await page.evaluate(() => {
25
- return {
26
- csp: document.querySelector('meta[http-equiv="Content-Security-Policy"]')?.getAttribute('content'),
27
- xFrameOptions: document.querySelector('meta[http-equiv="X-Frame-Options"]')?.getAttribute('content'),
28
- };
29
- });
30
- console.log('CSP info:', response);
31
- // Create iframe using DOM methods
32
- await page.evaluate(() => {
33
- const iframe = document.createElement('iframe');
34
- iframe.id = 'cross-frame';
35
- iframe.src = 'https://www.iana.org/domains/example';
36
- iframe.width = '800';
37
- iframe.height = '400';
38
- document.body.appendChild(iframe);
39
- });
40
- // Wait for frame to be attached
41
- await page.waitForSelector('#cross-frame');
42
- // Wait longer
43
- await page.waitForTimeout(5000);
44
- // Check all frames
45
- console.log('\n=== All frames ===');
46
- const mainFrame = page.mainFrame();
47
- console.log('Main frame URL:', mainFrame.url());
48
- console.log('Child frames:', mainFrame.childFrames().map(f => ({ url: f.url(), name: f.name() })));
49
- await browser.close();
50
- }
51
- test().catch(console.error);
52
- //# sourceMappingURL=test-iframe.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-iframe.js","sourceRoot":"","sources":["../../src/__tests__/test-iframe.ts"],"names":[],"mappings":"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"}
package/dist/cli-new.d.ts DELETED
@@ -1,3 +0,0 @@
1
- #!/usr/bin/env npx tsx
2
- export {};
3
- //# sourceMappingURL=cli-new.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli-new.d.ts","sourceRoot":"","sources":["../src/cli-new.ts"],"names":[],"mappings":""}