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.
Files changed (223) hide show
  1. package/dist/a11y-client.js +18 -8
  2. package/dist/aria-snapshot.d.ts +41 -3
  3. package/dist/aria-snapshot.d.ts.map +1 -1
  4. package/dist/aria-snapshot.js +134 -55
  5. package/dist/aria-snapshot.js.map +1 -1
  6. package/dist/aria-snapshot.test.js +5 -2
  7. package/dist/aria-snapshot.test.js.map +1 -1
  8. package/dist/aria-snapshot.unit.test.js +83 -41
  9. package/dist/aria-snapshot.unit.test.js.map +1 -1
  10. package/dist/assets/cursors/screen-studio/pointer-macos-tahoe-data-url.d.ts +5 -0
  11. package/dist/assets/cursors/screen-studio/pointer-macos-tahoe-data-url.d.ts.map +1 -0
  12. package/dist/assets/cursors/screen-studio/pointer-macos-tahoe-data-url.js +5 -0
  13. package/dist/assets/cursors/screen-studio/pointer-macos-tahoe-data-url.js.map +1 -0
  14. package/dist/bippy.js +1 -1
  15. package/dist/cdp-log.d.ts +1 -1
  16. package/dist/cdp-log.d.ts.map +1 -1
  17. package/dist/cdp-log.js +1 -1
  18. package/dist/cdp-log.js.map +1 -1
  19. package/dist/cdp-relay.d.ts.map +1 -1
  20. package/dist/cdp-relay.js +492 -298
  21. package/dist/cdp-relay.js.map +1 -1
  22. package/dist/cdp-session.d.ts.map +1 -1
  23. package/dist/cdp-session.js.map +1 -1
  24. package/dist/cdp-types.d.ts.map +1 -1
  25. package/dist/cdp-types.js +7 -7
  26. package/dist/cdp-types.js.map +1 -1
  27. package/dist/clean-html.d.ts.map +1 -1
  28. package/dist/clean-html.js +4 -5
  29. package/dist/clean-html.js.map +1 -1
  30. package/dist/cli.js +45 -27
  31. package/dist/cli.js.map +1 -1
  32. package/dist/create-logger.d.ts.map +1 -1
  33. package/dist/create-logger.js +3 -1
  34. package/dist/create-logger.js.map +1 -1
  35. package/dist/debugger-examples-types.d.ts.map +1 -1
  36. package/dist/debugger.d.ts.map +1 -1
  37. package/dist/debugger.js +1 -3
  38. package/dist/debugger.js.map +1 -1
  39. package/dist/diff-utils.d.ts.map +1 -1
  40. package/dist/diff-utils.js +1 -4
  41. package/dist/diff-utils.js.map +1 -1
  42. package/dist/editor-api.md +12 -2
  43. package/dist/editor-examples.d.ts +1 -1
  44. package/dist/editor-examples.d.ts.map +1 -1
  45. package/dist/editor-examples.js +1 -1
  46. package/dist/editor-examples.js.map +1 -1
  47. package/dist/editor.d.ts +1 -1
  48. package/dist/editor.d.ts.map +1 -1
  49. package/dist/editor.js +1 -1
  50. package/dist/editor.js.map +1 -1
  51. package/dist/executor.d.ts +26 -3
  52. package/dist/executor.d.ts.map +1 -1
  53. package/dist/executor.js +297 -64
  54. package/dist/executor.js.map +1 -1
  55. package/dist/executor.unit.test.js +38 -1
  56. package/dist/executor.unit.test.js.map +1 -1
  57. package/dist/extension-connection.test.js +139 -36
  58. package/dist/extension-connection.test.js.map +1 -1
  59. package/dist/ffmpeg.d.ts +148 -0
  60. package/dist/ffmpeg.d.ts.map +1 -0
  61. package/dist/ffmpeg.js +523 -0
  62. package/dist/ffmpeg.js.map +1 -0
  63. package/dist/ghost-browser.d.ts.map +1 -1
  64. package/dist/ghost-browser.js.map +1 -1
  65. package/dist/ghost-cursor-client.js +287 -0
  66. package/dist/ghost-cursor.d.ts +27 -0
  67. package/dist/ghost-cursor.d.ts.map +1 -0
  68. package/dist/ghost-cursor.js +63 -0
  69. package/dist/ghost-cursor.js.map +1 -0
  70. package/dist/htmlrewrite.d.ts.map +1 -1
  71. package/dist/htmlrewrite.js +17 -55
  72. package/dist/htmlrewrite.js.map +1 -1
  73. package/dist/htmlrewrite.test.js.map +1 -1
  74. package/dist/kill-port.d.ts.map +1 -1
  75. package/dist/kill-port.js +1 -3
  76. package/dist/kill-port.js.map +1 -1
  77. package/dist/locator-selector.test.d.ts +2 -0
  78. package/dist/locator-selector.test.d.ts.map +1 -0
  79. package/dist/locator-selector.test.js +96 -0
  80. package/dist/locator-selector.test.js.map +1 -0
  81. package/dist/mcp-client.js.map +1 -1
  82. package/dist/mcp.d.ts.map +1 -1
  83. package/dist/mcp.js +8 -3
  84. package/dist/mcp.js.map +1 -1
  85. package/dist/on-mouse-action.test.d.ts +2 -0
  86. package/dist/on-mouse-action.test.d.ts.map +1 -0
  87. package/dist/on-mouse-action.test.js +155 -0
  88. package/dist/on-mouse-action.test.js.map +1 -0
  89. package/dist/page-markdown.js +4 -4
  90. package/dist/page-markdown.js.map +1 -1
  91. package/dist/prompt.md +450 -377
  92. package/dist/protocol.d.ts +4 -0
  93. package/dist/protocol.d.ts.map +1 -1
  94. package/dist/readability.js +16 -2
  95. package/dist/recording-ghost-cursor.d.ts +41 -0
  96. package/dist/recording-ghost-cursor.d.ts.map +1 -0
  97. package/dist/recording-ghost-cursor.js +79 -0
  98. package/dist/recording-ghost-cursor.js.map +1 -0
  99. package/dist/recording-relay.d.ts.map +1 -1
  100. package/dist/recording-relay.js +8 -8
  101. package/dist/recording-relay.js.map +1 -1
  102. package/dist/relay-client.d.ts +17 -4
  103. package/dist/relay-client.d.ts.map +1 -1
  104. package/dist/relay-client.js +45 -11
  105. package/dist/relay-client.js.map +1 -1
  106. package/dist/relay-core.test.d.ts.map +1 -1
  107. package/dist/relay-core.test.js +515 -26
  108. package/dist/relay-core.test.js.map +1 -1
  109. package/dist/relay-navigation.test.d.ts.map +1 -1
  110. package/dist/relay-navigation.test.js +169 -31
  111. package/dist/relay-navigation.test.js.map +1 -1
  112. package/dist/relay-session.test.d.ts.map +1 -1
  113. package/dist/relay-session.test.js +113 -65
  114. package/dist/relay-session.test.js.map +1 -1
  115. package/dist/relay-state.d.ts +158 -0
  116. package/dist/relay-state.d.ts.map +1 -0
  117. package/dist/relay-state.js +306 -0
  118. package/dist/relay-state.js.map +1 -0
  119. package/dist/relay-state.test.d.ts +2 -0
  120. package/dist/relay-state.test.d.ts.map +1 -0
  121. package/dist/relay-state.test.js +472 -0
  122. package/dist/relay-state.test.js.map +1 -0
  123. package/dist/scoped-fs.d.ts.map +1 -1
  124. package/dist/scoped-fs.js.map +1 -1
  125. package/dist/screen-recording.d.ts +66 -4
  126. package/dist/screen-recording.d.ts.map +1 -1
  127. package/dist/screen-recording.js +150 -13
  128. package/dist/screen-recording.js.map +1 -1
  129. package/dist/screen-recording.test.d.ts +2 -0
  130. package/dist/screen-recording.test.d.ts.map +1 -0
  131. package/dist/screen-recording.test.js +102 -0
  132. package/dist/screen-recording.test.js.map +1 -0
  133. package/dist/selector-generator.js +1 -1
  134. package/dist/snapshot-tools.test.js +71 -28
  135. package/dist/snapshot-tools.test.js.map +1 -1
  136. package/dist/start-relay-server.d.ts +1 -1
  137. package/dist/start-relay-server.d.ts.map +1 -1
  138. package/dist/start-relay-server.js +1 -1
  139. package/dist/start-relay-server.js.map +1 -1
  140. package/dist/styles-api.md +8 -1
  141. package/dist/styles-examples.d.ts +1 -1
  142. package/dist/styles-examples.d.ts.map +1 -1
  143. package/dist/styles-examples.js +1 -1
  144. package/dist/styles-examples.js.map +1 -1
  145. package/dist/styles.d.ts.map +1 -1
  146. package/dist/styles.js +1 -3
  147. package/dist/styles.js.map +1 -1
  148. package/dist/test-declarations.d.ts.map +1 -1
  149. package/dist/test-utils.d.ts +1 -1
  150. package/dist/test-utils.d.ts.map +1 -1
  151. package/dist/test-utils.js +7 -5
  152. package/dist/test-utils.js.map +1 -1
  153. package/dist/utils.d.ts.map +1 -1
  154. package/dist/utils.js.map +1 -1
  155. package/dist/wait-for-page-load.d.ts.map +1 -1
  156. package/dist/wait-for-page-load.js +1 -1
  157. package/dist/wait-for-page-load.js.map +1 -1
  158. package/package.json +4 -3
  159. package/src/a11y-client.ts +5 -4
  160. package/src/aria-snapshot.test.ts +5 -2
  161. package/src/aria-snapshot.ts +306 -117
  162. package/src/aria-snapshot.unit.test.ts +199 -141
  163. package/src/aria-snapshots/github-interactive.txt +2 -0
  164. package/src/aria-snapshots/github-raw.txt +5 -1
  165. package/src/aria-snapshots/hackernews-interactive.txt +238 -241
  166. package/src/aria-snapshots/hackernews-raw.txt +265 -269
  167. package/src/assets/aria-labels-example.png +0 -0
  168. package/src/assets/aria-labels-github.png +0 -0
  169. package/src/assets/aria-labels-hacker-news.png +0 -0
  170. package/src/assets/aria-labels-old-reddit.png +0 -0
  171. package/src/assets/cursors/screen-studio/pointer-macos-tahoe-data-url.ts +5 -0
  172. package/src/assets/cursors/screen-studio/pointer-macos-tahoe.svg +18 -0
  173. package/src/cdp-log.ts +4 -1
  174. package/src/cdp-relay.ts +1059 -737
  175. package/src/cdp-session.ts +12 -3
  176. package/src/cdp-types.ts +51 -51
  177. package/src/clean-html.ts +4 -5
  178. package/src/cli.ts +82 -55
  179. package/src/create-logger.ts +5 -3
  180. package/src/debugger-examples-types.ts +4 -1
  181. package/src/debugger.ts +1 -5
  182. package/src/diff-utils.ts +2 -5
  183. package/src/editor-examples.ts +11 -1
  184. package/src/editor.ts +10 -2
  185. package/src/executor.ts +374 -73
  186. package/src/executor.unit.test.ts +48 -1
  187. package/src/extension-connection.test.ts +612 -488
  188. package/src/ffmpeg.ts +769 -0
  189. package/src/ghost-browser.ts +4 -6
  190. package/src/ghost-cursor-client.ts +369 -0
  191. package/src/ghost-cursor.ts +110 -0
  192. package/src/htmlrewrite.test.ts +6 -2
  193. package/src/htmlrewrite.ts +348 -386
  194. package/src/kill-port.ts +1 -3
  195. package/src/locator-selector.test.ts +115 -0
  196. package/src/mcp-client.ts +1 -1
  197. package/src/mcp.ts +21 -15
  198. package/src/on-mouse-action.test.ts +196 -0
  199. package/src/page-markdown.ts +7 -7
  200. package/src/protocol.ts +73 -57
  201. package/src/recording-ghost-cursor.ts +113 -0
  202. package/src/recording-relay.ts +20 -12
  203. package/src/relay-client.ts +85 -18
  204. package/src/relay-core.test.ts +1117 -578
  205. package/src/relay-navigation.test.ts +648 -483
  206. package/src/relay-session.test.ts +984 -929
  207. package/src/relay-state.test.ts +570 -0
  208. package/src/relay-state.ts +497 -0
  209. package/src/resource.md +21 -49
  210. package/src/scoped-fs.ts +9 -3
  211. package/src/screen-recording.test.ts +111 -0
  212. package/src/screen-recording.ts +256 -31
  213. package/src/skill.md +476 -396
  214. package/src/snapshot-tools.test.ts +580 -528
  215. package/src/snapshots/shadcn-ui-accessibility-full.md +8 -8
  216. package/src/snapshots/shadcn-ui-accessibility-interactive.md +8 -8
  217. package/src/start-relay-server.ts +14 -11
  218. package/src/styles-examples.ts +8 -1
  219. package/src/styles.ts +20 -21
  220. package/src/test-declarations.ts +6 -6
  221. package/src/test-utils.ts +104 -91
  222. package/src/utils.ts +2 -1
  223. package/src/wait-for-page-load.ts +6 -1
@@ -0,0 +1,306 @@
1
+ /**
2
+ * Centralized relay state: one immutable atom for domain state + runtime resources.
3
+ *
4
+ * Follows the zustand-centralized-state skill pattern:
5
+ * - Single Zustand vanilla store holds all relay state
6
+ * - setState() callbacks remain deterministic data transitions
7
+ * - Runtime resources (WebSocket/timers/pending callbacks) are co-located on
8
+ * each extension entry in the same map
9
+ *
10
+ * See docs/plan-centralize-relay-state.md for the full refactor plan.
11
+ */
12
+ import { createStore } from 'zustand/vanilla';
13
+ // ---------------------------------------------------------------------------
14
+ // Store factory
15
+ // ---------------------------------------------------------------------------
16
+ export function createRelayStore() {
17
+ return createStore(() => ({
18
+ extensions: new Map(),
19
+ playwrightClients: new Map(),
20
+ }));
21
+ }
22
+ // ---------------------------------------------------------------------------
23
+ // Derivation helpers
24
+ // ---------------------------------------------------------------------------
25
+ /**
26
+ * Linear scan over extensions to find one by stableKey. With <10 extensions this is free.
27
+ * Returns the LAST (newest) match because during reconnect both old and new connections
28
+ * coexist briefly. Map iteration order is insertion order, so last wins.
29
+ */
30
+ export function findExtensionByStableKey(state, stableKey) {
31
+ let match;
32
+ for (const ext of state.extensions.values()) {
33
+ if (ext.stableKey === stableKey) {
34
+ match = ext;
35
+ }
36
+ }
37
+ return match;
38
+ }
39
+ /** Find which extension owns a CDP tab sessionId (e.g. "pw-tab-1"). */
40
+ export function findExtensionIdByCdpSession(state, cdpSessionId) {
41
+ for (const [connectionId, ext] of state.extensions.entries()) {
42
+ if (ext.connectedTargets.has(cdpSessionId)) {
43
+ return connectionId;
44
+ }
45
+ }
46
+ return null;
47
+ }
48
+ // ---------------------------------------------------------------------------
49
+ // Pure state transition functions
50
+ //
51
+ // Each takes RelayState + event data and returns a new RelayState.
52
+ // No I/O, no side effects. Testable with data in / data out.
53
+ // ---------------------------------------------------------------------------
54
+ /**
55
+ * Add a new extension connection.
56
+ * Does NOT remove an existing connection with the same stableKey — that old
57
+ * connection stays routable until its WebSocket onClose fires and calls
58
+ * removeExtension(). This preserves in-flight message routing during reconnect.
59
+ * findExtensionByStableKey() returns the newest match so stableKey lookups
60
+ * resolve to the new connection immediately.
61
+ */
62
+ export function addExtension(state, { id, info, stableKey, ws, }) {
63
+ const newExtensions = new Map(state.extensions);
64
+ newExtensions.set(id, {
65
+ id,
66
+ info,
67
+ stableKey,
68
+ connectedTargets: new Map(),
69
+ ws,
70
+ pendingRequests: new Map(),
71
+ messageId: 0,
72
+ pingInterval: null,
73
+ });
74
+ return { ...state, extensions: newExtensions };
75
+ }
76
+ /** Remove an extension, its targets, and any playwright clients bound to it. */
77
+ export function removeExtension(state, { extensionId }) {
78
+ if (!state.extensions.has(extensionId)) {
79
+ return state;
80
+ }
81
+ const newExtensions = new Map(state.extensions);
82
+ newExtensions.delete(extensionId);
83
+ // Also remove playwright clients bound to this extension
84
+ const clientsToRemove = Array.from(state.playwrightClients.values())
85
+ .filter((client) => client.extensionId === extensionId);
86
+ if (clientsToRemove.length === 0) {
87
+ return { ...state, extensions: newExtensions };
88
+ }
89
+ const newClients = new Map(state.playwrightClients);
90
+ for (const client of clientsToRemove) {
91
+ newClients.delete(client.id);
92
+ }
93
+ return { ...state, extensions: newExtensions, playwrightClients: newClients };
94
+ }
95
+ /** Add a playwright client (state + ws handle co-located). */
96
+ export function addPlaywrightClient(state, { id, extensionId, ws }) {
97
+ const newClients = new Map(state.playwrightClients);
98
+ newClients.set(id, { id, extensionId, ws });
99
+ return { ...state, playwrightClients: newClients };
100
+ }
101
+ /** Remove a playwright client. */
102
+ export function removePlaywrightClient(state, { clientId }) {
103
+ if (!state.playwrightClients.has(clientId)) {
104
+ return state;
105
+ }
106
+ const newClients = new Map(state.playwrightClients);
107
+ newClients.delete(clientId);
108
+ return { ...state, playwrightClients: newClients };
109
+ }
110
+ /** Rebind all clients from one extension id to another. */
111
+ export function rebindClientsToExtension(state, { fromExtensionId, toExtensionId }) {
112
+ if (fromExtensionId === toExtensionId) {
113
+ return state;
114
+ }
115
+ let updated = false;
116
+ const newClients = new Map(state.playwrightClients);
117
+ for (const [clientId, client] of newClients) {
118
+ if (client.extensionId !== fromExtensionId) {
119
+ continue;
120
+ }
121
+ newClients.set(clientId, { ...client, extensionId: toExtensionId });
122
+ updated = true;
123
+ }
124
+ if (!updated) {
125
+ return state;
126
+ }
127
+ return { ...state, playwrightClients: newClients };
128
+ }
129
+ /** Update an extension entry's I/O fields (ws, pingInterval). */
130
+ export function updateExtensionIO(state, { extensionId, ws, pingInterval, }) {
131
+ const ext = state.extensions.get(extensionId);
132
+ if (!ext) {
133
+ return state;
134
+ }
135
+ const newExtensions = new Map(state.extensions);
136
+ newExtensions.set(extensionId, {
137
+ ...ext,
138
+ ...(ws !== undefined ? { ws } : {}),
139
+ ...(pingInterval !== undefined ? { pingInterval } : {}),
140
+ });
141
+ return { ...state, extensions: newExtensions };
142
+ }
143
+ /** Add or replace one pending extension request callback pair. */
144
+ export function addExtensionPendingRequest(state, { extensionId, requestId, pendingRequest, }) {
145
+ const ext = state.extensions.get(extensionId);
146
+ if (!ext) {
147
+ return state;
148
+ }
149
+ const pendingRequests = new Map(ext.pendingRequests);
150
+ pendingRequests.set(requestId, pendingRequest);
151
+ const newExtensions = new Map(state.extensions);
152
+ newExtensions.set(extensionId, { ...ext, pendingRequests });
153
+ return { ...state, extensions: newExtensions };
154
+ }
155
+ /** Remove one pending extension request callback pair. */
156
+ export function removeExtensionPendingRequest(state, { extensionId, requestId }) {
157
+ const ext = state.extensions.get(extensionId);
158
+ if (!ext || !ext.pendingRequests.has(requestId)) {
159
+ return state;
160
+ }
161
+ const pendingRequests = new Map(ext.pendingRequests);
162
+ pendingRequests.delete(requestId);
163
+ const newExtensions = new Map(state.extensions);
164
+ newExtensions.set(extensionId, { ...ext, pendingRequests });
165
+ return { ...state, extensions: newExtensions };
166
+ }
167
+ /** Add a target to an extension's connectedTargets. No-op if extension doesn't exist. */
168
+ export function addTarget(state, { extensionId, sessionId, targetId, targetInfo, existingFrameIds, }) {
169
+ const ext = state.extensions.get(extensionId);
170
+ if (!ext) {
171
+ return state;
172
+ }
173
+ const existingTarget = ext.connectedTargets.get(sessionId);
174
+ const newTargets = new Map(ext.connectedTargets);
175
+ newTargets.set(sessionId, {
176
+ sessionId,
177
+ targetId,
178
+ targetInfo,
179
+ frameIds: existingFrameIds ?? existingTarget?.frameIds ?? new Set(),
180
+ });
181
+ const newExtensions = new Map(state.extensions);
182
+ newExtensions.set(extensionId, { ...ext, connectedTargets: newTargets });
183
+ return { ...state, extensions: newExtensions };
184
+ }
185
+ /** Remove a target by sessionId. No-op if extension or target doesn't exist. */
186
+ export function removeTarget(state, { extensionId, sessionId }) {
187
+ const ext = state.extensions.get(extensionId);
188
+ if (!ext || !ext.connectedTargets.has(sessionId)) {
189
+ return state;
190
+ }
191
+ const newTargets = new Map(ext.connectedTargets);
192
+ newTargets.delete(sessionId);
193
+ const newExtensions = new Map(state.extensions);
194
+ newExtensions.set(extensionId, { ...ext, connectedTargets: newTargets });
195
+ return { ...state, extensions: newExtensions };
196
+ }
197
+ /** Remove a crashed target by targetId (not sessionId). */
198
+ export function removeTargetByCrash(state, { extensionId, targetId }) {
199
+ const ext = state.extensions.get(extensionId);
200
+ if (!ext) {
201
+ return state;
202
+ }
203
+ let found = false;
204
+ const newTargets = new Map(ext.connectedTargets);
205
+ for (const [sid, target] of newTargets) {
206
+ if (target.targetId === targetId) {
207
+ newTargets.delete(sid);
208
+ found = true;
209
+ break;
210
+ }
211
+ }
212
+ if (!found) {
213
+ return state;
214
+ }
215
+ const newExtensions = new Map(state.extensions);
216
+ newExtensions.set(extensionId, { ...ext, connectedTargets: newTargets });
217
+ return { ...state, extensions: newExtensions };
218
+ }
219
+ /** Update targetInfo on a target matched by targetId. */
220
+ export function updateTargetInfo(state, { extensionId, targetInfo }) {
221
+ const ext = state.extensions.get(extensionId);
222
+ if (!ext) {
223
+ return state;
224
+ }
225
+ let updated = false;
226
+ const newTargets = new Map(ext.connectedTargets);
227
+ for (const [sid, target] of newTargets) {
228
+ if (target.targetId === targetInfo.targetId) {
229
+ newTargets.set(sid, { ...target, targetInfo });
230
+ updated = true;
231
+ break;
232
+ }
233
+ }
234
+ if (!updated) {
235
+ return state;
236
+ }
237
+ const newExtensions = new Map(state.extensions);
238
+ newExtensions.set(extensionId, { ...ext, connectedTargets: newTargets });
239
+ return { ...state, extensions: newExtensions };
240
+ }
241
+ /** Add a frameId to a target's frameIds set. */
242
+ export function addFrameId(state, { extensionId, sessionId, frameId }) {
243
+ const ext = state.extensions.get(extensionId);
244
+ if (!ext) {
245
+ return state;
246
+ }
247
+ const target = ext.connectedTargets.get(sessionId);
248
+ if (!target) {
249
+ return state;
250
+ }
251
+ // Already present — no-op
252
+ if (target.frameIds.has(frameId)) {
253
+ return state;
254
+ }
255
+ const newFrameIds = new Set(target.frameIds);
256
+ newFrameIds.add(frameId);
257
+ const newTargets = new Map(ext.connectedTargets);
258
+ newTargets.set(sessionId, { ...target, frameIds: newFrameIds });
259
+ const newExtensions = new Map(state.extensions);
260
+ newExtensions.set(extensionId, { ...ext, connectedTargets: newTargets });
261
+ return { ...state, extensions: newExtensions };
262
+ }
263
+ /** Remove a frameId from the target that owns it (scans all targets in the extension). */
264
+ export function removeFrameId(state, { extensionId, frameId }) {
265
+ const ext = state.extensions.get(extensionId);
266
+ if (!ext) {
267
+ return state;
268
+ }
269
+ for (const [sid, target] of ext.connectedTargets) {
270
+ if (target.frameIds.has(frameId)) {
271
+ const newFrameIds = new Set(target.frameIds);
272
+ newFrameIds.delete(frameId);
273
+ const newTargets = new Map(ext.connectedTargets);
274
+ newTargets.set(sid, { ...target, frameIds: newFrameIds });
275
+ const newExtensions = new Map(state.extensions);
276
+ newExtensions.set(extensionId, { ...ext, connectedTargets: newTargets });
277
+ return { ...state, extensions: newExtensions };
278
+ }
279
+ }
280
+ return state;
281
+ }
282
+ /**
283
+ * Update URL (and optionally title) on a target.
284
+ * Used by Page.frameNavigated (top-level) and Page.navigatedWithinDocument.
285
+ */
286
+ export function updateTargetUrl(state, { extensionId, sessionId, url, title, }) {
287
+ const ext = state.extensions.get(extensionId);
288
+ if (!ext) {
289
+ return state;
290
+ }
291
+ const target = ext.connectedTargets.get(sessionId);
292
+ if (!target) {
293
+ return state;
294
+ }
295
+ const newTargetInfo = {
296
+ ...target.targetInfo,
297
+ url,
298
+ ...(title !== undefined ? { title } : {}),
299
+ };
300
+ const newTargets = new Map(ext.connectedTargets);
301
+ newTargets.set(sessionId, { ...target, targetInfo: newTargetInfo });
302
+ const newExtensions = new Map(state.extensions);
303
+ newExtensions.set(extensionId, { ...ext, connectedTargets: newTargets });
304
+ return { ...state, extensions: newExtensions };
305
+ }
306
+ //# sourceMappingURL=relay-state.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relay-state.js","sourceRoot":"","sources":["../src/relay-state.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=relay-state.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"relay-state.test.d.ts","sourceRoot":"","sources":["../src/relay-state.test.ts"],"names":[],"mappings":""}