playwriter 0.0.25 → 0.0.29

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 (105) hide show
  1. package/bin.js +1 -1
  2. package/dist/bippy.js +966 -0
  3. package/dist/{extension/cdp-relay.d.ts → cdp-relay.d.ts} +3 -2
  4. package/dist/cdp-relay.d.ts.map +1 -0
  5. package/dist/{extension/cdp-relay.js → cdp-relay.js} +101 -3
  6. package/dist/cdp-relay.js.map +1 -0
  7. package/dist/cdp-session.d.ts +1 -1
  8. package/dist/cdp-session.d.ts.map +1 -1
  9. package/dist/cdp-session.js +4 -4
  10. package/dist/cdp-session.js.map +1 -1
  11. package/dist/cli.d.ts +3 -0
  12. package/dist/cli.d.ts.map +1 -0
  13. package/dist/cli.js +71 -0
  14. package/dist/cli.js.map +1 -0
  15. package/dist/create-logger.d.ts.map +1 -1
  16. package/dist/create-logger.js +2 -1
  17. package/dist/create-logger.js.map +1 -1
  18. package/dist/debugger-examples-types.d.ts +18 -0
  19. package/dist/debugger-examples-types.d.ts.map +1 -0
  20. package/dist/debugger-examples-types.js +2 -0
  21. package/dist/debugger-examples-types.js.map +1 -0
  22. package/dist/debugger-examples.d.ts +6 -0
  23. package/dist/debugger-examples.d.ts.map +1 -0
  24. package/dist/debugger-examples.js +53 -0
  25. package/dist/debugger-examples.js.map +1 -0
  26. package/dist/debugger-examples.ts +66 -0
  27. package/dist/debugger.d.ts +380 -0
  28. package/dist/debugger.d.ts.map +1 -0
  29. package/dist/debugger.js +631 -0
  30. package/dist/debugger.js.map +1 -0
  31. package/dist/editor-examples.d.ts +11 -0
  32. package/dist/editor-examples.d.ts.map +1 -0
  33. package/dist/editor-examples.js +124 -0
  34. package/dist/editor-examples.js.map +1 -0
  35. package/dist/editor.d.ts +203 -0
  36. package/dist/editor.d.ts.map +1 -0
  37. package/dist/editor.js +335 -0
  38. package/dist/editor.js.map +1 -0
  39. package/dist/index.d.ts +1 -1
  40. package/dist/index.d.ts.map +1 -1
  41. package/dist/index.js +1 -1
  42. package/dist/index.js.map +1 -1
  43. package/dist/mcp-client.d.ts +5 -1
  44. package/dist/mcp-client.d.ts.map +1 -1
  45. package/dist/mcp-client.js +13 -9
  46. package/dist/mcp-client.js.map +1 -1
  47. package/dist/mcp.d.ts +4 -1
  48. package/dist/mcp.d.ts.map +1 -1
  49. package/dist/mcp.js +170 -27
  50. package/dist/mcp.js.map +1 -1
  51. package/dist/mcp.test.d.ts.map +1 -1
  52. package/dist/mcp.test.js +886 -182
  53. package/dist/mcp.test.js.map +1 -1
  54. package/dist/prompt.md +86 -6
  55. package/dist/{extension/protocol.d.ts → protocol.d.ts} +1 -1
  56. package/dist/protocol.d.ts.map +1 -0
  57. package/dist/protocol.js.map +1 -0
  58. package/dist/react-source.d.ts +13 -0
  59. package/dist/react-source.d.ts.map +1 -0
  60. package/dist/react-source.js +66 -0
  61. package/dist/react-source.js.map +1 -0
  62. package/dist/selector-generator.js +7065 -18
  63. package/dist/start-relay-server.d.ts +4 -2
  64. package/dist/start-relay-server.d.ts.map +1 -1
  65. package/dist/start-relay-server.js +3 -3
  66. package/dist/start-relay-server.js.map +1 -1
  67. package/dist/styles.d.ts +27 -0
  68. package/dist/styles.d.ts.map +1 -0
  69. package/dist/styles.js +232 -0
  70. package/dist/styles.js.map +1 -0
  71. package/dist/utils.d.ts +3 -1
  72. package/dist/utils.d.ts.map +1 -1
  73. package/dist/utils.js +7 -3
  74. package/dist/utils.js.map +1 -1
  75. package/dist/wait-for-page-load.d.ts.map +1 -1
  76. package/dist/wait-for-page-load.js +3 -2
  77. package/dist/wait-for-page-load.js.map +1 -1
  78. package/package.json +5 -2
  79. package/src/{extension/cdp-relay.ts → cdp-relay.ts} +109 -5
  80. package/src/cdp-session.ts +4 -4
  81. package/src/cdp-timing.md +128 -0
  82. package/src/cli.ts +85 -0
  83. package/src/create-logger.ts +2 -1
  84. package/src/debugger-examples-types.ts +10 -0
  85. package/src/debugger-examples.ts +66 -0
  86. package/src/debugger.ts +711 -0
  87. package/src/editor-examples.ts +148 -0
  88. package/src/editor.ts +389 -0
  89. package/src/index.ts +1 -1
  90. package/src/mcp-client.ts +14 -9
  91. package/src/mcp.test.ts +1053 -196
  92. package/src/mcp.ts +195 -30
  93. package/src/prompt.md +86 -6
  94. package/src/{extension/protocol.ts → protocol.ts} +1 -1
  95. package/src/react-source.ts +92 -0
  96. package/src/snapshots/shadcn-ui-accessibility.md +57 -57
  97. package/src/start-relay-server.ts +3 -3
  98. package/src/styles.ts +343 -0
  99. package/src/utils.ts +8 -3
  100. package/src/wait-for-page-load.ts +3 -2
  101. package/dist/extension/cdp-relay.d.ts.map +0 -1
  102. package/dist/extension/cdp-relay.js.map +0 -1
  103. package/dist/extension/protocol.d.ts.map +0 -1
  104. package/dist/extension/protocol.js.map +0 -1
  105. /package/dist/{extension/protocol.js → protocol.js} +0 -0
@@ -25,10 +25,10 @@ Return value:
25
25
  - generic [ref=e18]: Search documentation...
26
26
  - generic [ref=e19]:
27
27
  - generic: ⌘K
28
- - link "103k" [ref=e20] [cursor=pointer]:
28
+ - link "104k" [ref=e20] [cursor=pointer]:
29
29
  - /url: https://github.com/shadcn-ui/ui
30
30
  - img
31
- - generic [ref=e21]: 103k
31
+ - generic [ref=e21]: 104k
32
32
  - button "Toggle theme" [ref=e22]:
33
33
  - img
34
34
  - generic [ref=e23]: Toggle theme
@@ -69,76 +69,76 @@ Return value:
69
69
  - generic [ref=e50]: Theme
70
70
  - combobox "Theme" [ref=e51]:
71
71
  - generic [ref=e52]: "Theme:"
72
- - generic: Neutral
73
72
  - img
74
- - button "Copy Code" [ref=e53]:
73
+ - combobox [ref=e53]
74
+ - button "Copy Code" [ref=e54]:
75
75
  - img
76
- - generic [ref=e54]: Copy Code
77
- - generic [ref=e58]:
78
- - generic [ref=e62]:
79
- - group "Payment Method" [ref=e63]:
80
- - generic [ref=e64]: Payment Method
81
- - paragraph [ref=e65]: All transactions are secure and encrypted
82
- - generic [ref=e66]:
83
- - group [ref=e67]:
84
- - generic [ref=e68]: Name on Card
85
- - textbox "Name on Card" [ref=e69]:
76
+ - generic [ref=e55]: Copy Code
77
+ - generic [ref=e59]:
78
+ - generic [ref=e63]:
79
+ - group "Payment Method" [ref=e64]:
80
+ - generic [ref=e65]: Payment Method
81
+ - paragraph [ref=e66]: All transactions are secure and encrypted
82
+ - generic [ref=e67]:
83
+ - group [ref=e68]:
84
+ - generic [ref=e69]: Name on Card
85
+ - textbox "Name on Card" [ref=e70]:
86
86
  - /placeholder: John Doe
87
- - generic [ref=e70]:
88
- - group [ref=e71]:
89
- - generic [ref=e72]: Card Number
90
- - textbox "Card Number" [ref=e73]:
87
+ - generic [ref=e71]:
88
+ - group [ref=e72]:
89
+ - generic [ref=e73]: Card Number
90
+ - textbox "Card Number" [ref=e74]:
91
91
  - /placeholder: 1234 5678 9012 3456
92
- - paragraph [ref=e74]: Enter your 16-digit number.
93
- - group [ref=e75]:
94
- - generic [ref=e76]: CVV
95
- - textbox "CVV" [ref=e77]:
92
+ - paragraph [ref=e75]: Enter your 16-digit number.
93
+ - group [ref=e76]:
94
+ - generic [ref=e77]: CVV
95
+ - textbox "CVV" [ref=e78]:
96
96
  - /placeholder: "123"
97
- - generic [ref=e78]:
98
- - group [ref=e79]:
99
- - generic [ref=e80]: Month
100
- - combobox "Month" [ref=e81]:
97
+ - generic [ref=e79]:
98
+ - group [ref=e80]:
99
+ - generic [ref=e81]: Month
100
+ - combobox "Month" [ref=e82]:
101
101
  - generic: MM
102
102
  - img
103
- - combobox [ref=e82]
104
- - group [ref=e83]:
105
- - generic [ref=e84]: Year
106
- - combobox "Year" [ref=e85]:
103
+ - combobox [ref=e83]
104
+ - group [ref=e84]:
105
+ - generic [ref=e85]: Year
106
+ - combobox "Year" [ref=e86]:
107
107
  - generic: YYYY
108
108
  - img
109
- - combobox [ref=e86]
110
- - group "Billing Address" [ref=e88]:
111
- - generic [ref=e89]: Billing Address
112
- - paragraph [ref=e90]: The billing address associated with your payment method
113
- - group [ref=e92]:
114
- - checkbox "Same as shipping address" [checked] [ref=e93]:
109
+ - combobox [ref=e87]
110
+ - group "Billing Address" [ref=e89]:
111
+ - generic [ref=e90]: Billing Address
112
+ - paragraph [ref=e91]: The billing address associated with your payment method
113
+ - group [ref=e93]:
114
+ - checkbox "Same as shipping address" [checked] [ref=e94]:
115
115
  - generic:
116
116
  - img
117
117
  - checkbox [checked]
118
- - generic [ref=e94]: Same as shipping address
119
- - group [ref=e96]:
120
- - group [ref=e98]:
121
- - generic [ref=e99]: Comments
122
- - textbox "Comments" [ref=e100]:
118
+ - generic [ref=e95]: Same as shipping address
119
+ - group [ref=e97]:
120
+ - group [ref=e99]:
121
+ - generic [ref=e100]: Comments
122
+ - textbox "Comments" [ref=e101]:
123
123
  - /placeholder: Add any additional comments
124
- - group [ref=e101]:
125
- - button "Submit" [ref=e102]
126
- - button "Cancel" [ref=e103]
127
- - generic [ref=e104]:
128
- - generic [ref=e105]:
129
- - generic [ref=e106]:
130
- - generic [ref=e108]:
131
- - img "@shadcn" [ref=e110]
132
- - img "@maxleiter" [ref=e112]
133
- - img "@evilrabbit" [ref=e114]
134
- - generic [ref=e115]: No Team Members
135
- - generic [ref=e116]: Invite your team to collaborate on this project.
136
- - button "Invite Members" [ref=e118]:
124
+ - group [ref=e102]:
125
+ - button "Submit" [ref=e103]
126
+ - button "Cancel" [ref=e104]
127
+ - generic [ref=e105]:
128
+ - generic [ref=e106]:
129
+ - generic [ref=e107]:
130
+ - generic [ref=e109]:
131
+ - generic [ref=e111]: CN
132
+ - generic [ref=e113]: LR
133
+ - generic [ref=e115]: ER
134
+ - generic [ref=e116]: No Team Members
135
+ - generic [ref=e117]: Invite your team to collaborate on this project.
136
+ - button "Invite Members" [ref=e119]:
137
137
  - img
138
138
  - text: Invite Members
139
- - generic [ref=e119]:
140
- - generic [ref=e120]:
139
+ - generic [ref=e120]:
140
+ - generic [ref=e121]:
141
141
  - status "Loading"
142
-
142
+ - tex
143
143
 
144
144
  [Truncated to 6000 characters. Better manage your logs or paginate them to read the full logs]
@@ -1,4 +1,4 @@
1
- import { startPlayWriterCDPRelayServer } from './extension/cdp-relay.js'
1
+ import { startPlayWriterCDPRelayServer } from './cdp-relay.js'
2
2
  import { createFileLogger } from './create-logger.js'
3
3
 
4
4
  process.title = 'playwriter-ws-server'
@@ -20,8 +20,8 @@ process.on('exit', async (code) => {
20
20
  });
21
21
 
22
22
 
23
- export async function startServer({ port = 19988 }: { port?: number } = {}) {
24
- const server = await startPlayWriterCDPRelayServer({ port, logger })
23
+ export async function startServer({ port = 19988, host = '127.0.0.1', token }: { port?: number; host?: string; token?: string } = {}) {
24
+ const server = await startPlayWriterCDPRelayServer({ port, host, token, logger })
25
25
 
26
26
  console.log('CDP Relay Server running. Press Ctrl+C to stop.')
27
27
  console.log('Logs are being written to:', logger.logFilePath)
package/src/styles.ts ADDED
@@ -0,0 +1,343 @@
1
+ import type { CDPSession } from './cdp-session.js'
2
+ import type { Locator } from 'playwright-core'
3
+
4
+ export interface StyleSource {
5
+ url: string
6
+ line: number
7
+ column: number
8
+ }
9
+
10
+ export type StyleDeclarations = Record<string, string>
11
+
12
+ export interface StyleRule {
13
+ selector: string
14
+ source: StyleSource | null
15
+ origin: 'regular' | 'user-agent' | 'injected' | 'inspector'
16
+ declarations: StyleDeclarations
17
+ inheritedFrom: string | null
18
+ }
19
+
20
+ export interface StylesResult {
21
+ element: string
22
+ inlineStyle: StyleDeclarations | null
23
+ rules: StyleRule[]
24
+ }
25
+
26
+ interface CSSProperty {
27
+ name: string
28
+ value: string
29
+ important?: boolean
30
+ }
31
+
32
+ interface CSSStyle {
33
+ cssProperties: CSSProperty[]
34
+ cssText?: string
35
+ }
36
+
37
+ interface CSSRule {
38
+ selectorList: { text: string }
39
+ style: CSSStyle
40
+ styleSheetId?: string
41
+ origin: string
42
+ }
43
+
44
+ interface RuleMatch {
45
+ rule: CSSRule
46
+ matchingSelectors: number[]
47
+ }
48
+
49
+ interface InheritedStyleEntry {
50
+ inlineStyle?: CSSStyle
51
+ matchedCSSRules: RuleMatch[]
52
+ }
53
+
54
+ interface SourceRange {
55
+ startLine: number
56
+ startColumn: number
57
+ endLine: number
58
+ endColumn: number
59
+ }
60
+
61
+ interface CSSStyleSheetHeader {
62
+ styleSheetId: string
63
+ sourceURL?: string
64
+ origin: string
65
+ }
66
+
67
+ export async function getStylesForLocator({
68
+ locator,
69
+ cdp,
70
+ includeUserAgentStyles = false,
71
+ }: {
72
+ locator: Locator
73
+ cdp: CDPSession
74
+ includeUserAgentStyles?: boolean
75
+ }): Promise<StylesResult> {
76
+ await cdp.send('DOM.enable')
77
+ await cdp.send('CSS.enable')
78
+
79
+ const elementHandle = await locator.elementHandle()
80
+ if (!elementHandle) {
81
+ throw new Error('Could not get element handle from locator')
82
+ }
83
+
84
+ const remoteObject = (elementHandle as any)._channel?.objectId
85
+ ? { objectId: (elementHandle as any)._channel.objectId }
86
+ : null
87
+
88
+ let backendNodeId: number
89
+ if (remoteObject?.objectId) {
90
+ const nodeInfo = await cdp.send('DOM.describeNode', {
91
+ objectId: remoteObject.objectId,
92
+ })
93
+ backendNodeId = nodeInfo.node.backendNodeId
94
+ } else {
95
+ const box = await elementHandle.boundingBox()
96
+ if (!box) {
97
+ throw new Error('Element has no bounding box')
98
+ }
99
+ const docResult = await cdp.send('DOM.getDocument', { depth: 0 })
100
+ const nodeAtPoint = await cdp.send('DOM.getNodeForLocation', {
101
+ x: Math.round(box.x + box.width / 2),
102
+ y: Math.round(box.y + box.height / 2),
103
+ })
104
+ backendNodeId = nodeAtPoint.backendNodeId
105
+ }
106
+
107
+ const pushResult = await cdp.send('DOM.pushNodesByBackendIdsToFrontend', {
108
+ backendNodeIds: [backendNodeId],
109
+ })
110
+ const nodeId = pushResult.nodeIds[0]
111
+
112
+ if (!nodeId) {
113
+ throw new Error('Could not get nodeId for element')
114
+ }
115
+
116
+ const nodeInfo = await cdp.send('DOM.describeNode', { nodeId })
117
+ const elementDescription = formatElementDescription(nodeInfo.node)
118
+
119
+ const matchedStyles = await cdp.send('CSS.getMatchedStylesForNode', { nodeId })
120
+
121
+ const stylesheetUrls = new Map<string, string>()
122
+
123
+ const processStyleSheetId = async (styleSheetId: string | undefined): Promise<StyleSource | null> => {
124
+ if (!styleSheetId) {
125
+ return null
126
+ }
127
+
128
+ if (!stylesheetUrls.has(styleSheetId)) {
129
+ try {
130
+ const header = await cdp.send('CSS.getStyleSheetText', { styleSheetId })
131
+ stylesheetUrls.set(styleSheetId, '')
132
+ } catch {
133
+ stylesheetUrls.set(styleSheetId, '')
134
+ }
135
+ }
136
+
137
+ return null
138
+ }
139
+
140
+ const rules: StyleRule[] = []
141
+
142
+ if (matchedStyles.matchedCSSRules) {
143
+ for (const ruleMatch of matchedStyles.matchedCSSRules) {
144
+ const rule = ruleMatch.rule
145
+ const sourceRange = (rule as any).selectorList?.range as SourceRange | undefined
146
+ const styleSheetId = rule.styleSheetId
147
+
148
+ let source: StyleSource | null = null
149
+ if (styleSheetId && sourceRange) {
150
+ const styleSheet = (matchedStyles as any).cssStyleSheetHeaders?.find(
151
+ (h: CSSStyleSheetHeader) => h.styleSheetId === styleSheetId
152
+ )
153
+ const url = styleSheet?.sourceURL || (rule as any).origin === 'user-agent' ? 'user-agent' : `stylesheet:${styleSheetId}`
154
+
155
+ source = {
156
+ url: (rule as any).styleSheetId ? await getStylesheetUrl(cdp, styleSheetId) : 'user-agent',
157
+ line: sourceRange.startLine + 1,
158
+ column: sourceRange.startColumn,
159
+ }
160
+ }
161
+
162
+ rules.push({
163
+ selector: rule.selectorList.text,
164
+ source,
165
+ origin: rule.origin as StyleRule['origin'],
166
+ declarations: extractDeclarations(rule.style),
167
+ inheritedFrom: null,
168
+ })
169
+ }
170
+ }
171
+
172
+ if (matchedStyles.inherited) {
173
+ for (let i = 0; i < matchedStyles.inherited.length; i++) {
174
+ const inheritedEntry = matchedStyles.inherited[i] as InheritedStyleEntry
175
+ const ancestorDesc = `ancestor[${i + 1}]`
176
+
177
+ if (inheritedEntry.inlineStyle) {
178
+ const declarations = extractDeclarations(inheritedEntry.inlineStyle)
179
+ if (Object.keys(declarations).length > 0) {
180
+ rules.push({
181
+ selector: 'element.style',
182
+ source: null,
183
+ origin: 'regular',
184
+ declarations,
185
+ inheritedFrom: ancestorDesc,
186
+ })
187
+ }
188
+ }
189
+
190
+ for (const ruleMatch of inheritedEntry.matchedCSSRules) {
191
+ const rule = ruleMatch.rule
192
+ const sourceRange = (rule as any).selectorList?.range as SourceRange | undefined
193
+ const styleSheetId = rule.styleSheetId
194
+
195
+ let source: StyleSource | null = null
196
+ if (styleSheetId && sourceRange) {
197
+ source = {
198
+ url: await getStylesheetUrl(cdp, styleSheetId),
199
+ line: sourceRange.startLine + 1,
200
+ column: sourceRange.startColumn,
201
+ }
202
+ }
203
+
204
+ const declarations = extractDeclarations(rule.style)
205
+ if (Object.keys(declarations).length > 0) {
206
+ rules.push({
207
+ selector: rule.selectorList.text,
208
+ source,
209
+ origin: rule.origin as StyleRule['origin'],
210
+ declarations,
211
+ inheritedFrom: ancestorDesc,
212
+ })
213
+ }
214
+ }
215
+ }
216
+ }
217
+
218
+ let inlineStyle: StyleDeclarations | null = null
219
+ if (matchedStyles.inlineStyle) {
220
+ const declarations = extractDeclarations(matchedStyles.inlineStyle as CSSStyle)
221
+ if (Object.keys(declarations).length > 0) {
222
+ inlineStyle = declarations
223
+ }
224
+ }
225
+
226
+ const filteredRules = includeUserAgentStyles
227
+ ? rules
228
+ : rules.filter((r) => r.origin !== 'user-agent')
229
+
230
+ return {
231
+ element: elementDescription,
232
+ inlineStyle,
233
+ rules: filteredRules,
234
+ }
235
+ }
236
+
237
+ function extractDeclarations(style: CSSStyle): StyleDeclarations {
238
+ if (!style?.cssProperties) {
239
+ return {}
240
+ }
241
+
242
+ const result: StyleDeclarations = {}
243
+ for (const prop of style.cssProperties) {
244
+ if (!prop.value || prop.value === 'initial' || prop.name.startsWith('-webkit-')) {
245
+ continue
246
+ }
247
+ const value = prop.important ? `${prop.value} !important` : prop.value
248
+ result[prop.name] = value
249
+ }
250
+ return result
251
+ }
252
+
253
+ function formatElementDescription(node: any): string {
254
+ let desc = node.localName || node.nodeName?.toLowerCase() || 'element'
255
+
256
+ if (node.attributes) {
257
+ const attrs: Record<string, string> = {}
258
+ for (let i = 0; i < node.attributes.length; i += 2) {
259
+ attrs[node.attributes[i]] = node.attributes[i + 1]
260
+ }
261
+
262
+ if (attrs.id) {
263
+ desc += `#${attrs.id}`
264
+ }
265
+ if (attrs.class) {
266
+ desc += `.${attrs.class.split(' ').join('.')}`
267
+ }
268
+ }
269
+
270
+ return desc
271
+ }
272
+
273
+ async function getStylesheetUrl(cdp: CDPSession, styleSheetId: string): Promise<string> {
274
+ try {
275
+ await cdp.send('CSS.getStyleSheetText', { styleSheetId })
276
+ return `stylesheet:${styleSheetId}`
277
+ } catch {
278
+ return `stylesheet:${styleSheetId}`
279
+ }
280
+ }
281
+
282
+ export function formatStylesAsText(styles: StylesResult): string {
283
+ const lines: string[] = []
284
+
285
+ lines.push(`Element: ${styles.element}`)
286
+ lines.push('')
287
+
288
+ if (styles.inlineStyle) {
289
+ lines.push('Inline styles:')
290
+ for (const [prop, value] of Object.entries(styles.inlineStyle)) {
291
+ lines.push(` ${prop}: ${value}`)
292
+ }
293
+ lines.push('')
294
+ }
295
+
296
+ const directRules = styles.rules.filter((r) => !r.inheritedFrom)
297
+ const inheritedRules = styles.rules.filter((r) => r.inheritedFrom)
298
+
299
+ if (directRules.length > 0) {
300
+ lines.push('Matched rules:')
301
+ for (const rule of directRules) {
302
+ lines.push(` ${rule.selector} {`)
303
+ const sourceInfo = rule.source ? ` /* ${rule.source.url}:${rule.source.line}:${rule.source.column} */` : ''
304
+ if (sourceInfo) {
305
+ lines.push(` ${sourceInfo}`)
306
+ }
307
+ for (const [prop, value] of Object.entries(rule.declarations)) {
308
+ lines.push(` ${prop}: ${value};`)
309
+ }
310
+ lines.push(' }')
311
+ }
312
+ lines.push('')
313
+ }
314
+
315
+ if (inheritedRules.length > 0) {
316
+ const byAncestor = new Map<string, StyleRule[]>()
317
+ for (const rule of inheritedRules) {
318
+ const key = rule.inheritedFrom!
319
+ if (!byAncestor.has(key)) {
320
+ byAncestor.set(key, [])
321
+ }
322
+ byAncestor.get(key)!.push(rule)
323
+ }
324
+
325
+ for (const [ancestor, rules] of byAncestor) {
326
+ lines.push(`Inherited from ${ancestor}:`)
327
+ for (const rule of rules) {
328
+ lines.push(` ${rule.selector} {`)
329
+ const sourceInfo = rule.source ? ` /* ${rule.source.url}:${rule.source.line}:${rule.source.column} */` : ''
330
+ if (sourceInfo) {
331
+ lines.push(` ${sourceInfo}`)
332
+ }
333
+ for (const [prop, value] of Object.entries(rule.declarations)) {
334
+ lines.push(` ${prop}: ${value};`)
335
+ }
336
+ lines.push(' }')
337
+ }
338
+ lines.push('')
339
+ }
340
+ }
341
+
342
+ return lines.join('\n')
343
+ }
package/src/utils.ts CHANGED
@@ -3,12 +3,17 @@ import os from 'node:os'
3
3
  import path from 'node:path'
4
4
  import { fileURLToPath } from 'node:url'
5
5
 
6
- export function getCdpUrl({ port = 19988, host = '127.0.0.1' }: { port?: number; host?: string } = {}) {
6
+ export function getCdpUrl({ port = 19988, host = '127.0.0.1', token }: { port?: number; host?: string; token?: string } = {}) {
7
7
  const id = `${Math.random().toString(36).substring(2, 15)}_${Date.now()}`
8
- return `ws://${host}:${port}/cdp/${id}`
8
+ const queryString = token ? `?token=${token}` : ''
9
+ return `ws://${host}:${port}/cdp/${id}${queryString}`
9
10
  }
10
11
 
11
- export const LOG_FILE_PATH = path.join(os.tmpdir(), 'playwriter', 'relay-server.log')
12
+ export const LOG_FILE_PATH = process.env.PLAYWRITER_LOG_FILE_PATH || path.join(os.tmpdir(), 'playwriter', 'relay-server.log')
12
13
 
13
14
  const packageJsonPath = path.join(path.dirname(fileURLToPath(import.meta.url)), '..', 'package.json')
14
15
  export const VERSION = JSON.parse(fs.readFileSync(packageJsonPath, 'utf-8')).version as string
16
+
17
+ export function sleep(ms: number): Promise<void> {
18
+ return new Promise((resolve) => setTimeout(resolve, ms))
19
+ }
@@ -1,4 +1,5 @@
1
1
  import type { Page } from 'playwright-core'
2
+ import { sleep } from './utils.js'
2
3
 
3
4
  const FILTERED_DOMAINS = [
4
5
  'doubleclick',
@@ -130,7 +131,7 @@ export async function waitForPageLoad(options: WaitForPageLoadOptions): Promise<
130
131
  return result
131
132
  }
132
133
 
133
- await new Promise((resolve) => setTimeout(resolve, minWait))
134
+ await sleep(minWait)
134
135
 
135
136
  while (Date.now() - startTime < timeout) {
136
137
  try {
@@ -158,7 +159,7 @@ export async function waitForPageLoad(options: WaitForPageLoadOptions): Promise<
158
159
  }
159
160
  }
160
161
 
161
- await new Promise((resolve) => setTimeout(resolve, pollInterval))
162
+ await sleep(pollInterval)
162
163
  }
163
164
 
164
165
  timedOut = true
@@ -1 +0,0 @@
1
- {"version":3,"file":"cdp-relay.d.ts","sourceRoot":"","sources":["../../src/extension/cdp-relay.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAA0D,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAoBhH,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,IAAI,IAAI,CAAA;IACb,EAAE,CAAC,CAAC,SAAS,MAAM,iBAAiB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;IACrF,GAAG,CAAC,CAAC,SAAS,MAAM,iBAAiB,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,iBAAiB,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;CACvF,CAAA;AAED,wBAAsB,6BAA6B,CAAC,EAAE,IAAY,EAAE,IAAkB,EAAE,MAAM,EAAE,GAAE;IAAE,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE;QAAE,GAAG,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QAAC,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAA;KAAE,CAAA;CAAO,GAAG,OAAO,CAAC,WAAW,CAAC,CA4lBlO"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"cdp-relay.js","sourceRoot":"","sources":["../../src/extension/cdp-relay.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/extension/protocol.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAA;AAE9D,eAAO,MAAM,OAAO,IAAI,CAAA;AAExB,KAAK,iBAAiB,GACpB;KACG,CAAC,IAAI,MAAM,eAAe,CAAC,QAAQ,GAAG;QACrC,EAAE,EAAE,MAAM,CAAA;QACV,MAAM,EAAE,mBAAmB,CAAA;QAC3B,MAAM,EAAE;YACN,MAAM,EAAE,CAAC,CAAA;YACT,SAAS,CAAC,EAAE,MAAM,CAAA;YAClB,MAAM,CAAC,EAAE,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAA;SACtD,CAAA;KACF;CACF,CAAC,MAAM,eAAe,CAAC,QAAQ,CAAC,CAAA;AAEnC,MAAM,MAAM,uBAAuB,GAAG,iBAAiB,CAAA;AAEvD,MAAM,MAAM,wBAAwB,GAAG;IACrC,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,CAAC,EAAE,GAAG,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED;;;GAGG;AACH,MAAM,MAAM,qBAAqB,GAC/B;KACG,CAAC,IAAI,MAAM,eAAe,CAAC,MAAM,GAAG;QACnC,MAAM,EAAE,iBAAiB,CAAA;QACzB,MAAM,EAAE;YACN,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAA;YAChC,SAAS,CAAC,EAAE,MAAM,CAAA;YAClB,MAAM,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAA;SAClC,CAAA;KACF;CACF,CAAC,MAAM,eAAe,CAAC,MAAM,CAAC,CAAA;AAEjC,MAAM,MAAM,mBAAmB,GAAG;IAChC,MAAM,EAAE,KAAK,CAAA;IACb,MAAM,EAAE;QACN,KAAK,EAAE,KAAK,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,CAAA;QAClD,IAAI,EAAE,MAAM,EAAE,CAAA;KACf,CAAA;CACF,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG,wBAAwB,GAAG,qBAAqB,GAAG,mBAAmB,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/extension/protocol.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,CAAA"}
File without changes