@lobu/connector-sdk 7.0.0 → 7.1.0

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.
@@ -1 +1 @@
1
- {"version":3,"file":"cdp-page.d.ts","sourceRoot":"","sources":["../../src/browser/cdp-page.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,qBAAa,OAAO;IAClB,OAAO,CAAC,EAAE,CAAY;IACtB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,KAAK,CAAK;IAElB,OAAO;IAMP;;;OAGG;WACU,MAAM,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAkE3D,OAAO,CAAC,IAAI;IAiBZ,uDAAuD;IACjD,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAwB1F,0EAA0E;IACpE,QAAQ,CAAC,CAAC,GAAG,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAevE;;;OAGG;IACG,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAazF,uDAAuD;IACjD,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5C,iCAAiC;IAC3B,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/C,gCAAgC;IAC1B,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;IAI5B,0BAA0B;IACpB,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;IAI9B,oCAAoC;IAC9B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAmB7B"}
1
+ {"version":3,"file":"cdp-page.d.ts","sourceRoot":"","sources":["../../src/browser/cdp-page.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH,qBAAa,OAAO;IAClB,OAAO,CAAC,EAAE,CAAY;IACtB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,KAAK,CAAK;IAElB,OAAO;IAMP;;;OAGG;WACU,MAAM,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA4E3D,OAAO,CAAC,IAAI;IA2BZ,uDAAuD;IACjD,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA6B1F,0EAA0E;IACpE,QAAQ,CAAC,CAAC,GAAG,OAAO,EAAE,UAAU,EAAE,MAAM,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;IAmBvE;;;OAGG;IACG,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAazF,uDAAuD;IACjD,KAAK,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5C,iCAAiC;IAC3B,cAAc,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/C,gCAAgC;IAC1B,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC;IAI5B,0BAA0B;IACpB,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;IAI9B,oCAAoC;IAC9B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAsC7B"}
@@ -39,15 +39,26 @@ export class CdpPage {
39
39
  const sendBrowser = (method, params = {}) => {
40
40
  return new Promise((resolve, reject) => {
41
41
  const id = Math.floor(Math.random() * 1e9);
42
- const timer = setTimeout(() => reject(new Error(`${method} timeout`)), 15000);
43
42
  const handler = (event) => {
44
- const data = JSON.parse(event.data);
43
+ let data;
44
+ try {
45
+ data = JSON.parse(event.data);
46
+ }
47
+ catch {
48
+ return;
49
+ }
45
50
  if (data.id === id) {
46
51
  clearTimeout(timer);
47
52
  ws.removeEventListener('message', handler);
48
53
  data.error ? reject(new Error(data.error.message)) : resolve(data.result);
49
54
  }
50
55
  };
56
+ // On timeout, detach the listener so it doesn't stay attached for the
57
+ // life of this WebSocket parsing every subsequent frame.
58
+ const timer = setTimeout(() => {
59
+ ws.removeEventListener('message', handler);
60
+ reject(new Error(`${method} timeout`));
61
+ }, 15000);
51
62
  ws.addEventListener('message', handler);
52
63
  ws.send(JSON.stringify({ id, method, params }));
53
64
  });
@@ -90,15 +101,26 @@ export class CdpPage {
90
101
  send(method, params = {}) {
91
102
  return new Promise((resolve, reject) => {
92
103
  const id = this.msgId++;
93
- const timer = setTimeout(() => reject(new Error(`${method} timeout`)), 30000);
94
104
  const handler = (event) => {
95
- const data = JSON.parse(event.data);
105
+ let data;
106
+ try {
107
+ data = JSON.parse(event.data);
108
+ }
109
+ catch {
110
+ return;
111
+ }
96
112
  if (data.id === id) {
97
113
  clearTimeout(timer);
98
114
  this.ws.removeEventListener('message', handler);
99
115
  data.error ? reject(new Error(data.error.message)) : resolve(data.result);
100
116
  }
101
117
  };
118
+ // On timeout, detach the listener so it doesn't stay attached for the
119
+ // life of this (long-lived) CDP session parsing every subsequent frame.
120
+ const timer = setTimeout(() => {
121
+ this.ws.removeEventListener('message', handler);
122
+ reject(new Error(`${method} timeout`));
123
+ }, 30000);
102
124
  this.ws.addEventListener('message', handler);
103
125
  this.ws.send(JSON.stringify({ id, method, params, sessionId: this.sessionId }));
104
126
  });
@@ -110,7 +132,13 @@ export class CdpPage {
110
132
  // Wait for load event
111
133
  await new Promise((resolve) => {
112
134
  const handler = (event) => {
113
- const data = JSON.parse(event.data);
135
+ let data;
136
+ try {
137
+ data = JSON.parse(event.data);
138
+ }
139
+ catch {
140
+ return;
141
+ }
114
142
  if (data.method === 'Page.loadEventFired' && data.sessionId === this.sessionId) {
115
143
  clearTimeout(timer);
116
144
  this.ws.removeEventListener('message', handler);
@@ -129,15 +157,19 @@ export class CdpPage {
129
157
  /** Evaluate a JavaScript expression in the page and return the result. */
130
158
  async evaluate(expression) {
131
159
  const code = typeof expression === 'function' ? `(${expression.toString()})()` : expression;
132
- const { result, exceptionDetails } = await this.send('Runtime.evaluate', {
160
+ const response = await this.send('Runtime.evaluate', {
133
161
  expression: code,
134
162
  returnByValue: true,
135
163
  awaitPromise: true,
136
164
  });
165
+ const { result, exceptionDetails } = response ?? {};
137
166
  if (exceptionDetails) {
138
167
  throw new Error(`evaluate failed: ${exceptionDetails.text || exceptionDetails.exception?.description || 'unknown error'}`);
139
168
  }
140
- return result.value;
169
+ // `result.value` is absent for `undefined`/JS objects without a JSON
170
+ // representation. Return undefined rather than dereferencing a possibly
171
+ // missing `result` object.
172
+ return result?.value ?? undefined;
141
173
  }
142
174
  /**
143
175
  * Wait for a CSS selector to appear in the DOM.
@@ -172,20 +204,42 @@ export class CdpPage {
172
204
  }
173
205
  /** Close the tab and disconnect. */
174
206
  async close() {
175
- try {
176
- await this.send('Page.close').catch(() => { });
177
- // Also close via Target API as fallback
207
+ await this.send('Page.close').catch(() => { });
208
+ // Also close via Target API as fallback. Round-trip so we know the close
209
+ // has been acked before tearing down the WebSocket. Target.closeTarget is
210
+ // a browser-level method so we send it raw (no sessionId).
211
+ await new Promise((resolve) => {
178
212
  const id = this.msgId++;
179
- this.ws.send(JSON.stringify({
180
- id,
181
- method: 'Target.closeTarget',
182
- params: { targetId: this.targetId },
183
- }));
184
- await new Promise((r) => setTimeout(r, 300));
213
+ const cleanup = () => {
214
+ clearTimeout(timer);
215
+ this.ws.removeEventListener('message', handler);
216
+ resolve();
217
+ };
218
+ const handler = (event) => {
219
+ let data;
220
+ try {
221
+ data = JSON.parse(event.data);
222
+ }
223
+ catch {
224
+ return;
225
+ }
226
+ if (data.id === id)
227
+ cleanup();
228
+ };
229
+ const timer = setTimeout(cleanup, 2000);
230
+ this.ws.addEventListener('message', handler);
231
+ try {
232
+ this.ws.send(JSON.stringify({ id, method: 'Target.closeTarget', params: { targetId: this.targetId } }));
233
+ }
234
+ catch {
235
+ cleanup();
236
+ }
237
+ });
238
+ try {
185
239
  this.ws.close();
186
240
  }
187
241
  catch {
188
- // Best-effort cleanup
242
+ /* best-effort */
189
243
  }
190
244
  sdkLogger.info({ targetId: this.targetId }, '[CdpPage] Tab closed');
191
245
  }
@@ -1 +1 @@
1
- {"version":3,"file":"cdp-page.js","sourceRoot":"","sources":["../../src/browser/cdp-page.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cdp-page.js","sourceRoot":"","sources":["../../src/browser/cdp-page.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,MAAM,OAAO,OAAO;IACV,EAAE,CAAY;IACd,SAAS,CAAS;IAClB,QAAQ,CAAS;IACjB,KAAK,GAAG,CAAC,CAAC;IAElB,YAAoB,EAAa,EAAE,SAAiB,EAAE,QAAgB;QACpE,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;QACb,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,YAAoB;QACtC,MAAM,EAAE,GAAG,IAAI,SAAS,CAAC,YAAY,CAAC,CAAC;QACvC,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YAC1C,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,kCAAkC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YAC7F,EAAE,CAAC,MAAM,GAAG,GAAG,EAAE;gBACf,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC;YACF,EAAE,CAAC,OAAO,GAAG,GAAG,EAAE;gBAChB,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,MAAM,CAAC,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC,CAAC;YACvD,CAAC,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,CAAC,MAAc,EAAE,SAAkC,EAAE,EAAgB,EAAE;YACzF,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;gBACrC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;gBAC3C,MAAM,OAAO,GAAG,CAAC,KAAmB,EAAE,EAAE;oBACtC,IAAI,IAAS,CAAC;oBACd,IAAI,CAAC;wBACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAc,CAAC,CAAC;oBAC1C,CAAC;oBAAC,MAAM,CAAC;wBACP,OAAO;oBACT,CAAC;oBACD,IAAI,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;wBACnB,YAAY,CAAC,KAAK,CAAC,CAAC;wBACpB,EAAE,CAAC,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;wBAC3C,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBAC5E,CAAC;gBACH,CAAC,CAAC;gBACF,sEAAsE;gBACtE,yDAAyD;gBACzD,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;oBAC5B,EAAE,CAAC,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;oBAC3C,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,MAAM,UAAU,CAAC,CAAC,CAAC;gBACzC,CAAC,EAAE,KAAK,CAAC,CAAC;gBACV,EAAE,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;gBACxC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;YAClD,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;QAEF,IAAI,eAAmC,CAAC;QACxC,IAAI,CAAC;YACH,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,WAAW,CAAC,qBAAqB,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE,CAAC,CAAC;YACtF,eAAe,GAAG,QAAQ,CAAC;YAC3B,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,WAAW,CAAC,uBAAuB,EAAE;gBAC/D,QAAQ;gBACR,OAAO,EAAE,IAAI;aACd,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,IAAI,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;YAClD,MAAM,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;YAC/B,MAAM,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;YAClC,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;YAE9B,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,EAAE,uBAAuB,CAAC,CAAC;YACtD,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,uEAAuE;YACvE,iEAAiE;YACjE,IAAI,eAAe,EAAE,CAAC;gBACpB,IAAI,CAAC;oBACH,MAAM,WAAW,CAAC,oBAAoB,EAAE,EAAE,QAAQ,EAAE,eAAe,EAAE,CAAC,CAAC;gBACzE,CAAC;gBAAC,MAAM,CAAC;oBACP,iBAAiB;gBACnB,CAAC;YACH,CAAC;YACD,IAAI,CAAC;gBACH,EAAE,CAAC,KAAK,EAAE,CAAC;YACb,CAAC;YAAC,MAAM,CAAC;gBACP,iBAAiB;YACnB,CAAC;YACD,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAEO,IAAI,CAAC,MAAc,EAAE,SAAkC,EAAE;QAC/D,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;YACxB,MAAM,OAAO,GAAG,CAAC,KAAmB,EAAE,EAAE;gBACtC,IAAI,IAAS,CAAC;gBACd,IAAI,CAAC;oBACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAc,CAAC,CAAC;gBAC1C,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO;gBACT,CAAC;gBACD,IAAI,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;oBACnB,YAAY,CAAC,KAAK,CAAC,CAAC;oBACpB,IAAI,CAAC,EAAE,CAAC,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;oBAChD,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC5E,CAAC;YACH,CAAC,CAAC;YACF,sEAAsE;YACtE,wEAAwE;YACxE,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC5B,IAAI,CAAC,EAAE,CAAC,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;gBAChD,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,MAAM,UAAU,CAAC,CAAC,CAAC;YACzC,CAAC,EAAE,KAAK,CAAC,CAAC;YACV,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAC7C,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC;QAClF,CAAC,CAAC,CAAC;IACL,CAAC;IAED,uDAAuD;IACvD,KAAK,CAAC,IAAI,CAAC,GAAW,EAAE,OAAkD;QACxE,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,KAAK,CAAC;QAC1C,MAAM,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,GAAG,EAAE,CAAC,CAAC;QAE1C,sBAAsB;QACtB,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAClC,MAAM,OAAO,GAAG,CAAC,KAAmB,EAAE,EAAE;gBACtC,IAAI,IAAS,CAAC;gBACd,IAAI,CAAC;oBACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAc,CAAC,CAAC;gBAC1C,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO;gBACT,CAAC;gBACD,IAAI,IAAI,CAAC,MAAM,KAAK,qBAAqB,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;oBAC/E,YAAY,CAAC,KAAK,CAAC,CAAC;oBACpB,IAAI,CAAC,EAAE,CAAC,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;oBAChD,OAAO,EAAE,CAAC;gBACZ,CAAC;YACH,CAAC,CAAC;YACF,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;gBAC5B,sEAAsE;gBACtE,uEAAuE;gBACvE,IAAI,CAAC,EAAE,CAAC,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;gBAChD,OAAO,EAAE,CAAC;YACZ,CAAC,EAAE,OAAO,CAAC,CAAC;YACZ,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC/C,CAAC,CAAC,CAAC;IACL,CAAC;IAED,0EAA0E;IAC1E,KAAK,CAAC,QAAQ,CAAc,UAA8B;QACxD,MAAM,IAAI,GAAG,OAAO,UAAU,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC;QAC5F,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE;YACnD,UAAU,EAAE,IAAI;YAChB,aAAa,EAAE,IAAI;YACnB,YAAY,EAAE,IAAI;SACnB,CAAC,CAAC;QACH,MAAM,EAAE,MAAM,EAAE,gBAAgB,EAAE,GAAG,QAAQ,IAAI,EAAE,CAAC;QACpD,IAAI,gBAAgB,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CACb,oBAAoB,gBAAgB,CAAC,IAAI,IAAI,gBAAgB,CAAC,SAAS,EAAE,WAAW,IAAI,eAAe,EAAE,CAC1G,CAAC;QACJ,CAAC;QACD,qEAAqE;QACrE,wEAAwE;QACxE,2BAA2B;QAC3B,OAAQ,MAAM,EAAE,KAAW,IAAK,SAA0B,CAAC;IAC7D,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,eAAe,CAAC,QAAgB,EAAE,OAA8B;QACpE,MAAM,OAAO,GAAG,OAAO,EAAE,OAAO,IAAI,KAAK,CAAC;QAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACzB,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,OAAO,EAAE,CAAC;YACpC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAC/B,4BAA4B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,GAAG,CACxD,CAAC;YACF,IAAI,KAAK;gBAAE,OAAO,IAAI,CAAC;YACvB,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,uDAAuD;IACvD,KAAK,CAAC,KAAK,CAAC,QAAgB;QAC1B,MAAM,IAAI,CAAC,QAAQ,CAAC,0BAA0B,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;IACtF,CAAC;IAED,iCAAiC;IACjC,KAAK,CAAC,cAAc,CAAC,EAAU;QAC7B,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED,gCAAgC;IAChC,KAAK,CAAC,GAAG;QACP,OAAO,IAAI,CAAC,QAAQ,CAAS,eAAe,CAAC,CAAC;IAChD,CAAC;IAED,0BAA0B;IAC1B,KAAK,CAAC,KAAK;QACT,OAAO,IAAI,CAAC,QAAQ,CAAS,gBAAgB,CAAC,CAAC;IACjD,CAAC;IAED,oCAAoC;IACpC,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC9C,yEAAyE;QACzE,0EAA0E;QAC1E,2DAA2D;QAC3D,MAAM,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE;YAClC,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC;YACxB,MAAM,OAAO,GAAG,GAAG,EAAE;gBACnB,YAAY,CAAC,KAAK,CAAC,CAAC;gBACpB,IAAI,CAAC,EAAE,CAAC,mBAAmB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;gBAChD,OAAO,EAAE,CAAC;YACZ,CAAC,CAAC;YACF,MAAM,OAAO,GAAG,CAAC,KAAmB,EAAE,EAAE;gBACtC,IAAI,IAAS,CAAC;gBACd,IAAI,CAAC;oBACH,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAc,CAAC,CAAC;gBAC1C,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO;gBACT,CAAC;gBACD,IAAI,IAAI,CAAC,EAAE,KAAK,EAAE;oBAAE,OAAO,EAAE,CAAC;YAChC,CAAC,CAAC;YACF,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACxC,IAAI,CAAC,EAAE,CAAC,gBAAgB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAC7C,IAAI,CAAC;gBACH,IAAI,CAAC,EAAE,CAAC,IAAI,CACV,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,oBAAoB,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,CAAC,CAC1F,CAAC;YACJ,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,EAAE,CAAC;YACZ,CAAC;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC;YACH,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;QAClB,CAAC;QAAC,MAAM,CAAC;YACP,iBAAiB;QACnB,CAAC;QACD,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,sBAAsB,CAAC,CAAC;IACtE,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"cdp.d.ts","sourceRoot":"","sources":["../../src/browser/cdp.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,iEAAiE;IACjE,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIrD;AAMD,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAgBzF;AAMD;;;;;GAKG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,SAAS,SAAO,GACf,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAoDhC;AAMD;;;GAGG;AACH,wBAAsB,4BAA4B,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAuBtE;AAED;;;GAGG;AACH,wBAAsB,4BAA4B,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAuBtE;AAMD,MAAM,WAAW,iBAAiB;IAChC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gFAAgF;IAChF,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,aAAa,CACjC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,EACrB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,MAAM,CAAC,CAgGjB"}
1
+ {"version":3,"file":"cdp.d.ts","sourceRoot":"","sources":["../../src/browser/cdp.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,iEAAiE;IACjE,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAIrD;AAMD,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAgBzF;AAMD;;;;;GAKG;AACH,wBAAsB,eAAe,CACnC,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,SAAS,SAAO,GACf,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CAwDhC;AAMD;;;GAGG;AACH,wBAAsB,4BAA4B,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAuBtE;AAED;;;GAGG;AACH,wBAAsB,4BAA4B,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAuBtE;AAMD,MAAM,WAAW,iBAAiB;IAChC,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gFAAgF;IAChF,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,aAAa,CACjC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,EACrB,OAAO,CAAC,EAAE,iBAAiB,GAC1B,OAAO,CAAC,MAAM,CAAC,CAgGjB"}
@@ -45,14 +45,19 @@ export async function fetchCdpVersionInfo(baseUrl) {
45
45
  export async function tryWebSocketCdp(host, port, timeoutMs = 3000) {
46
46
  const wsUrl = `ws://${host}:${port}/devtools/browser`;
47
47
  return new Promise((resolve) => {
48
- const timer = setTimeout(() => {
48
+ let ws;
49
+ const closeWs = () => {
49
50
  try {
50
- ws.close();
51
+ ws?.close();
52
+ }
53
+ catch {
54
+ /* best-effort */
51
55
  }
52
- catch { }
56
+ };
57
+ const timer = setTimeout(() => {
58
+ closeWs();
53
59
  resolve(null);
54
60
  }, timeoutMs);
55
- let ws;
56
61
  try {
57
62
  ws = new WebSocket(wsUrl);
58
63
  }
@@ -66,16 +71,15 @@ export async function tryWebSocketCdp(host, port, timeoutMs = 3000) {
66
71
  };
67
72
  ws.onmessage = (event) => {
68
73
  clearTimeout(timer);
74
+ closeWs();
69
75
  try {
70
76
  const data = JSON.parse(event.data);
71
77
  const result = data?.result;
72
78
  if (!result?.product) {
73
- ws.close();
74
79
  resolve(null);
75
80
  return;
76
81
  }
77
82
  const ua = result.userAgent;
78
- ws.close();
79
83
  resolve({
80
84
  Browser: result.product,
81
85
  webSocketDebuggerUrl: wsUrl,
@@ -83,7 +87,6 @@ export async function tryWebSocketCdp(host, port, timeoutMs = 3000) {
83
87
  });
84
88
  }
85
89
  catch {
86
- ws.close();
87
90
  resolve(null);
88
91
  }
89
92
  };
@@ -1 +1 @@
1
- {"version":3,"file":"cdp.js","sourceRoot":"","sources":["../../src/browser/cdp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cdp.js","sourceRoot":"","sources":["../../src/browser/cdp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Read Chrome's `DevToolsActivePort` file (two lines: port + WS path) to
3
+ * discover a live CDP endpoint. Works for both Chrome M144's chrome://
4
+ * inspect toggle and the classic `--remote-debugging-port=<n>` launch
5
+ * flag — both write the same file. The constructed `ws://127.0.0.1:
6
+ * <port><path>` is a standard CDP WebSocket; Playwright's
7
+ * `chromium.connectOverCDP(wsUrl)` attaches directly.
8
+ */
9
+ export interface DevToolsActivePort {
10
+ port: number;
11
+ wsPath: string;
12
+ wsUrl: string;
13
+ }
14
+ /**
15
+ * Read and parse `<userDataRoot>/DevToolsActivePort`. Returns null if the
16
+ * file is missing or malformed (e.g. Chrome hasn't been launched with
17
+ * remote debugging enabled in this profile).
18
+ */
19
+ export declare function readDevToolsActivePort(userDataRoot: string): Promise<DevToolsActivePort | null>;
20
+ //# sourceMappingURL=devtools-active-port.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"devtools-active-port.d.ts","sourceRoot":"","sources":["../../src/browser/devtools-active-port.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;GAIG;AACH,wBAAsB,sBAAsB,CAC1C,YAAY,EAAE,MAAM,GACnB,OAAO,CAAC,kBAAkB,GAAG,IAAI,CAAC,CAuBpC"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Read Chrome's `DevToolsActivePort` file (two lines: port + WS path) to
3
+ * discover a live CDP endpoint. Works for both Chrome M144's chrome://
4
+ * inspect toggle and the classic `--remote-debugging-port=<n>` launch
5
+ * flag — both write the same file. The constructed `ws://127.0.0.1:
6
+ * <port><path>` is a standard CDP WebSocket; Playwright's
7
+ * `chromium.connectOverCDP(wsUrl)` attaches directly.
8
+ */
9
+ import { existsSync } from 'node:fs';
10
+ import { readFile } from 'node:fs/promises';
11
+ import { join } from 'node:path';
12
+ /**
13
+ * Read and parse `<userDataRoot>/DevToolsActivePort`. Returns null if the
14
+ * file is missing or malformed (e.g. Chrome hasn't been launched with
15
+ * remote debugging enabled in this profile).
16
+ */
17
+ export async function readDevToolsActivePort(userDataRoot) {
18
+ const path = join(userDataRoot, 'DevToolsActivePort');
19
+ if (!existsSync(path))
20
+ return null;
21
+ let raw;
22
+ try {
23
+ raw = await readFile(path, 'utf-8');
24
+ }
25
+ catch {
26
+ return null;
27
+ }
28
+ const lines = raw
29
+ .split('\n')
30
+ .map((l) => l.trim())
31
+ .filter(Boolean);
32
+ if (lines.length < 2)
33
+ return null;
34
+ const port = Number(lines[0]);
35
+ const wsPath = lines[1];
36
+ if (!Number.isFinite(port) || port <= 0 || port > 65535)
37
+ return null;
38
+ if (!wsPath.startsWith('/'))
39
+ return null;
40
+ return {
41
+ port,
42
+ wsPath,
43
+ wsUrl: `ws://127.0.0.1:${port}${wsPath}`,
44
+ };
45
+ }
46
+ //# sourceMappingURL=devtools-active-port.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"devtools-active-port.js","sourceRoot":"","sources":["../../src/browser/devtools-active-port.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAQjC;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,YAAoB;IAEpB,MAAM,IAAI,GAAG,IAAI,CAAC,YAAY,EAAE,oBAAoB,CAAC,CAAC;IACtD,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACnC,IAAI,GAAW,CAAC;IAChB,IAAI,CAAC;QACH,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,KAAK,GAAG,GAAG;SACd,KAAK,CAAC,IAAI,CAAC;SACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,OAAO,CAAC,CAAC;IACnB,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAClC,MAAM,IAAI,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAC9B,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAE,CAAC;IACzB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,IAAI,GAAG,KAAK;QAAE,OAAO,IAAI,CAAC;IACrE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IACzC,OAAO;QACL,IAAI;QACJ,MAAM;QACN,KAAK,EAAE,kBAAkB,IAAI,GAAG,MAAM,EAAE;KACzC,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"launcher.d.ts","sourceRoot":"","sources":["../../src/browser/launcher.ts"],"names":[],"mappings":"AACA;;;GAGG;AAOH,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,GAAG,CAAC;IACb,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;CACvB;AAiBD;;GAEG;AACH,wBAAsB,aAAa,CACjC,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,eAAe,CAAC,CA8E1B;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,GAAG,EACT,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC,CA6Df;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,CAAC,EACtC,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,IAAI,EAAE,GAAG,EACT,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,CAAC,CAAC,CAOZ"}
1
+ {"version":3,"file":"launcher.d.ts","sourceRoot":"","sources":["../../src/browser/launcher.ts"],"names":[],"mappings":"AACA;;;GAGG;AAOH,MAAM,WAAW,oBAAoB;IACnC,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,GAAG,CAAC;IACb,YAAY,EAAE,OAAO,CAAC;IACtB,aAAa,EAAE,MAAM,CAAC;CACvB;AAYD;;GAEG;AACH,wBAAsB,aAAa,CACjC,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,eAAe,CAAC,CA8E1B;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,GAAG,EACT,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC,CAsEf;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,CAAC,EACtC,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EACpB,IAAI,EAAE,GAAG,EACT,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,CAAC,CAAC,CAOZ"}
@@ -7,15 +7,11 @@ import { mkdir, writeFile } from 'node:fs/promises';
7
7
  import { join } from 'node:path';
8
8
  import { sdkLogger } from '../logger.js';
9
9
  import { launchStealthBrowser } from './stealth.js';
10
- /**
11
- * Add Puppeteer-compatible methods to Playwright Page
12
- */
10
+ /** Add Puppeteer-compatible `setUserAgent` to a Playwright Page. */
13
11
  function addCompatibilityMethods(page) {
14
12
  if (!page.setUserAgent) {
15
13
  page.setUserAgent = async (userAgent) => {
16
- await page.setExtraHTTPHeaders({
17
- 'User-Agent': userAgent,
18
- });
14
+ await page.setExtraHTTPHeaders({ 'User-Agent': userAgent });
19
15
  };
20
16
  }
21
17
  return page;
@@ -88,8 +84,15 @@ export async function launchBrowser(options = {}) {
88
84
  export async function captureErrorArtifacts(page, error, feedType, screenshotDir) {
89
85
  try {
90
86
  await mkdir(screenshotDir, { recursive: true });
87
+ // feedType is caller-controlled and lands in on-disk filenames. Strip
88
+ // path separators, parent-dir references, and any non-filename-safe
89
+ // characters to prevent traversal outside screenshotDir.
90
+ const safeFeedType = (typeof feedType === 'string' ? feedType : 'unknown')
91
+ .replace(/[^a-zA-Z0-9._-]/g, '_')
92
+ .replace(/^\.+/, '_')
93
+ .slice(0, 64) || 'unknown';
91
94
  const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
92
- const baseFilename = `${feedType}-${timestamp}`;
95
+ const baseFilename = `${safeFeedType}-${timestamp}`;
93
96
  const screenshotPath = join(screenshotDir, `${baseFilename}.png`);
94
97
  try {
95
98
  await page.screenshot({
@@ -135,7 +138,7 @@ export async function captureErrorArtifacts(page, error, feedType, screenshotDir
135
138
  screenshot: screenshotPath,
136
139
  html: htmlPath,
137
140
  },
138
- debug_hint: `To debug: BROWSER_DEBUG=1 pnpm sync ${feedType} [options]`,
141
+ debug_hint: `To debug: BROWSER_DEBUG=1 pnpm sync ${safeFeedType} [options]`,
139
142
  }, '[BrowserLauncher] Feed failed');
140
143
  }
141
144
  catch (captureError) {
@@ -1 +1 @@
1
- {"version":3,"file":"launcher.js","sourceRoot":"","sources":["../../src/browser/launcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"launcher.js","sourceRoot":"","sources":["../../src/browser/launcher.ts"],"names":[],"mappings":"AAAA,2BAA2B;AAC3B;;;GAGG;AAEH,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAepD,oEAAoE;AACpE,SAAS,uBAAuB,CAAC,IAAS;IACxC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,CAAC;QACvB,IAAI,CAAC,YAAY,GAAG,KAAK,EAAE,SAAiB,EAAE,EAAE;YAC9C,MAAM,IAAI,CAAC,mBAAmB,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,CAAC,CAAC;QAC9D,CAAC,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,UAAgC,EAAE;IAElC,MAAM,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,GAAG,CAAC;IACnE,MAAM,WAAW,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,GAAG,CAAC;IACvE,MAAM,aAAa,GACjB,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAI,uBAAuB,CAAC;IAEzF,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,GAAG,CAAC,eAAe,KAAK,GAAG,CAAC;IAE1E,SAAS,CAAC,IAAI,CACZ,0DAA0D,CAAC,OAAO,cAAc,UAAU,EAAE,CAC7F,CAAC;IAEF,IAAI,CAAC;QACH,IAAI,UAAU,EAAE,CAAC;YACf,MAAM,cAAc,GAAG,MAAM,oBAAoB,CAAC;gBAChD,QAAQ,EAAE,CAAC,OAAO;gBAClB,KAAK,EAAE,OAAO;aACf,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,cAAc,CAAC,OAAO,CAAC;YACvC,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAEtD,OAAO,CAAC,OAAO,GAAG,KAAK,IAAI,EAAE;gBAC3B,MAAM,IAAI,GAAG,MAAM,eAAe,EAAE,CAAC;gBACrC,OAAO,uBAAuB,CAAC,IAAI,CAAC,CAAC;YACvC,CAAC,CAAC;YAEF,SAAS,CAAC,IAAI,CAAC,wEAAwE,CAAC,CAAC;YAEzF,OAAO;gBACL,OAAO;gBACP,YAAY,EAAE,IAAI;gBAClB,aAAa;aACd,CAAC;QACJ,CAAC;QAED,MAAM,gBAAgB,GAAG,YAAY,CAAC;QACtC,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;QAEvE,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC;YACpC,QAAQ,EAAE,CAAC,OAAO;YAClB,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACzB,IAAI,EAAE,CAAC,cAAc,EAAE,0BAA0B,EAAE,yBAAyB,CAAC;YAC7E,QAAQ,EAAE,OAAO;SAClB,CAAC,CAAC;QAEH,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACtD,OAAO,CAAC,OAAO,GAAG,KAAK,IAAI,EAAE;YAC3B,MAAM,IAAI,GAAG,MAAM,eAAe,EAAE,CAAC;YACrC,OAAO,uBAAuB,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC,CAAC;QAEF,IAAI,OAAO,EAAE,CAAC;YACZ,SAAS,CAAC,IAAI,CAAC,4EAA4E,CAAC,CAAC;QAC/F,CAAC;QAED,IAAI,WAAW,EAAE,CAAC;YAChB,SAAS,CAAC,IAAI,CACZ,8EAA8E,CAC/E,CAAC;QACJ,CAAC;QAED,OAAO;YACL,OAAO;YACP,YAAY,EAAE,IAAI;YAClB,aAAa;SACd,CAAC;IACJ,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,IAAI,KAAK,CAAC,OAAO,EAAE,QAAQ,CAAC,0BAA0B,CAAC,IAAI,KAAK,CAAC,IAAI,KAAK,kBAAkB,EAAE,CAAC;YAC7F,MAAM,IAAI,KAAK,CACb,yDAAyD;gBACvD,4EAA4E,CAC/E,CAAC;QACJ,CAAC;QAED,SAAS,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE,wDAAwD,CAAC,CAAC;QACrF,MAAM,IAAI,KAAK,CAAC,6BAA6B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;IAChE,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,IAAS,EACT,KAAY,EACZ,QAAgB,EAChB,aAAqB;IAErB,IAAI,CAAC;QACH,MAAM,KAAK,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAEhD,sEAAsE;QACtE,oEAAoE;QACpE,yDAAyD;QACzD,MAAM,YAAY,GAChB,CAAC,OAAO,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;aAClD,OAAO,CAAC,kBAAkB,EAAE,GAAG,CAAC;aAChC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC;aACpB,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,SAAS,CAAC;QAE/B,MAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;QACjE,MAAM,YAAY,GAAG,GAAG,YAAY,IAAI,SAAS,EAAE,CAAC;QAEpD,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,YAAY,MAAM,CAAC,CAAC;QAClE,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,UAAU,CAAC;gBACpB,IAAI,EAAE,cAAc;gBACpB,QAAQ,EAAE,IAAI;gBACd,OAAO,EAAE,IAAI;aACd,CAAC,CAAC;YACH,SAAS,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,EAAE,oCAAoC,CAAC,CAAC;QAClF,CAAC;QAAC,OAAO,eAAe,EAAE,CAAC;YACzB,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,eAAe,EAAE,EAAE,gDAAgD,CAAC,CAAC;QAC/F,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,YAAY,OAAO,CAAC,CAAC;QAC7D,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,MAAM,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;YACzC,SAAS,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,8BAA8B,CAAC,CAAC;QACtE,CAAC;QAAC,OAAO,SAAS,EAAE,CAAC;YACnB,SAAS,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,SAAS,EAAE,EAAE,uCAAuC,CAAC,CAAC;QAChF,CAAC;QAED,MAAM,QAAQ,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,YAAY,MAAM,CAAC,CAAC;QAC5D,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,IAAI;iBACpB,QAAQ,CAAC,GAAG,EAAE;gBACb,OAAQ,MAAM,CAAC,OAA6C,EAAE,OAAO,IAAI,EAAE,CAAC;YAC9E,CAAC,CAAC;iBACD,KAAK,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC;YAEnB,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpB,MAAM,SAAS,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;gBACpD,SAAS,CAAC,KAAK,CAAC,yCAAyC,QAAQ,EAAE,CAAC,CAAC;YACvE,CAAC;QACH,CAAC;QAAC,OAAO,SAAS,EAAE,CAAC;YACnB,4BAA4B;QAC9B,CAAC;QAED,SAAS,CAAC,KAAK,CACb;YACE,SAAS,EAAE,QAAQ;YACnB,KAAK,EAAE,KAAK,CAAC,OAAO;YACpB,KAAK,EAAE,KAAK,CAAC,KAAK;YAClB,SAAS,EAAE;gBACT,SAAS,EAAE,aAAa;gBACxB,UAAU,EAAE,cAAc;gBAC1B,IAAI,EAAE,QAAQ;aACf;YACD,UAAU,EAAE,uCAAuC,YAAY,YAAY;SAC5E,EACD,+BAA+B,CAChC,CAAC;IACJ,CAAC;IAAC,OAAO,YAAY,EAAE,CAAC;QACtB,SAAS,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE,qDAAqD,CAAC,CAAC;IAClG,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,gBAAgB,CACpC,EAAoB,EACpB,IAAS,EACT,QAAgB,EAChB,aAAqB;IAErB,IAAI,CAAC;QACH,OAAO,MAAM,EAAE,EAAE,CAAC;IACpB,CAAC;IAAC,OAAO,KAAU,EAAE,CAAC;QACpB,MAAM,qBAAqB,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,CAAC,CAAC;QAClE,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC"}
@@ -0,0 +1,64 @@
1
+ /**
2
+ * Decrypt cookies from a user-owned Chrome profile and inject them into a
3
+ * headless connector subprocess — the "mirror" model. The user picks a
4
+ * Chrome profile in the Lobu menu bar; at sync time we decrypt cookies
5
+ * via the macOS Keychain, drop Google-account domains (to avoid Google's
6
+ * session-conflict logout on the user's real Chrome), and hand a
7
+ * Playwright-ready Cookie[] to the runner. macOS only in v1.
8
+ */
9
+ import type { Cookie } from 'playwright';
10
+ export interface DecryptChromeCookiesParams {
11
+ /** "chrome" / "brave" / "arc" / "edge". v1 only honors "chrome". */
12
+ sourceBrowser?: string;
13
+ /** Absolute path to Chrome's user-data root (the dir that contains
14
+ * "Default", "Profile 1", etc. plus Local State). */
15
+ userDataRoot: string;
16
+ /** Subdir name of the source profile, e.g. "Default" or "Profile 1". */
17
+ sourceProfileDir: string;
18
+ /** Optional allow-list of host domains. When set, only cookies whose
19
+ * host_key matches one of these (exact, leading-dot, or wildcard
20
+ * subdomain) are returned. Empty = keep all. Used by `lobu memory
21
+ * browser-auth` to scope captures to a specific connector. */
22
+ allowDomains?: string[];
23
+ /** Optional deny-list of host domains. Cookies whose host_key matches
24
+ * any of these are dropped. Used by mirror mode to skip Google-account
25
+ * cookies (avoids Google's session-conflict logout). */
26
+ denyDomains?: Set<string>;
27
+ }
28
+ export interface DecryptChromeCookiesResult {
29
+ cookies: Cookie[];
30
+ /** How many cookies decrypted successfully before filtering. */
31
+ total_decrypted: number;
32
+ /** How many cookies got dropped by the deny-list. */
33
+ denied: number;
34
+ /** How many cookies got dropped by the allow-list (or by validation). */
35
+ filtered: number;
36
+ }
37
+ export interface MirrorCookieAcquireParams {
38
+ sourceBrowser: string;
39
+ userDataRoot: string;
40
+ sourceProfileDir: string;
41
+ }
42
+ export interface MirrorCookieAcquireResult {
43
+ cookies: Cookie[];
44
+ skipped_google_count: number;
45
+ total_decrypted_count: number;
46
+ }
47
+ /**
48
+ * Mirror-mode wrapper: decrypt the profile's cookies, filter out the
49
+ * Google-account deny-list. Used by `lobu connector run` so the connector
50
+ * subprocess can run authenticated against a user's Chrome state without
51
+ * launching anything.
52
+ */
53
+ export declare function acquireMirroredCookies(params: MirrorCookieAcquireParams): Promise<MirrorCookieAcquireResult>;
54
+ /**
55
+ * Decrypt cookies from a macOS Chrome profile's SQLite store via the
56
+ * Keychain entry. Generic primitive consumed by both mirror mode (with
57
+ * the Google deny-list) and the CLI's `lobu memory browser-auth` capture
58
+ * flow (with a connector-scoped allow-list). Replaces the older
59
+ * `extractCookiesMacOS` that used to live in
60
+ * `packages/cli/src/commands/memory/_lib/browser-auth-cmd.ts` — that
61
+ * file now imports this.
62
+ */
63
+ export declare function decryptChromeCookiesMacOS(params: DecryptChromeCookiesParams): Promise<DecryptChromeCookiesResult>;
64
+ //# sourceMappingURL=mirror-cookies.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mirror-cookies.d.ts","sourceRoot":"","sources":["../../src/browser/mirror-cookies.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAMH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAsCzC,MAAM,WAAW,0BAA0B;IACzC,oEAAoE;IACpE,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB;yDACqD;IACrD,YAAY,EAAE,MAAM,CAAC;IACrB,wEAAwE;IACxE,gBAAgB,EAAE,MAAM,CAAC;IACzB;;;kEAG8D;IAC9D,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB;;4DAEwD;IACxD,WAAW,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAC3B;AAED,MAAM,WAAW,0BAA0B;IACzC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,gEAAgE;IAChE,eAAe,EAAE,MAAM,CAAC;IACxB,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAC;IACf,yEAAyE;IACzE,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,yBAAyB;IACxC,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,yBAAyB;IACxC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,yBAAyB,GAChC,OAAO,CAAC,yBAAyB,CAAC,CAsBpC;AAED;;;;;;;;GAQG;AACH,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,0BAA0B,GACjC,OAAO,CAAC,0BAA0B,CAAC,CA+MrC"}
@@ -0,0 +1,293 @@
1
+ /**
2
+ * Decrypt cookies from a user-owned Chrome profile and inject them into a
3
+ * headless connector subprocess — the "mirror" model. The user picks a
4
+ * Chrome profile in the Lobu menu bar; at sync time we decrypt cookies
5
+ * via the macOS Keychain, drop Google-account domains (to avoid Google's
6
+ * session-conflict logout on the user's real Chrome), and hand a
7
+ * Playwright-ready Cookie[] to the runner. macOS only in v1.
8
+ */
9
+ import { execFileSync } from 'node:child_process';
10
+ import { copyFileSync, existsSync, mkdtempSync, rmSync } from 'node:fs';
11
+ import { tmpdir } from 'node:os';
12
+ import { join } from 'node:path';
13
+ import { sdkLogger } from '../logger.js';
14
+ /** Google-account domains we never copy. Two Chrome instances presenting
15
+ * the same Google OAuth cookies trigger Google's session-conflict
16
+ * heuristic, which force-logs out the user's real Chrome. The set covers
17
+ * Google's Sign-In, YouTube, Gmail, and content-CDN auth — enough to keep
18
+ * Lobu-side Chromium out of the Google account entirely. */
19
+ const GOOGLE_ACCOUNT_DOMAINS_DENY_LIST = new Set([
20
+ 'google.com',
21
+ 'accounts.google.com',
22
+ 'mail.google.com',
23
+ 'gmail.com',
24
+ 'youtube.com',
25
+ 'googleusercontent.com',
26
+ 'googleapis.com',
27
+ ]);
28
+ /** Map auth_data.source_browser → (Application Support relative path, Keychain service/account).
29
+ * We only fully support Chrome in v1; the others are stubbed for the future
30
+ * but always return null on the keychain lookup path. */
31
+ function browserConfig(sourceBrowser) {
32
+ switch (sourceBrowser) {
33
+ case 'chrome':
34
+ return {
35
+ userDataRootDefault: 'Google/Chrome',
36
+ keychain: { service: 'Chrome Safe Storage', account: 'Chrome' },
37
+ };
38
+ // Brave / Edge / Arc decryption needs different keychain entries plus
39
+ // version probing — held back until the v1 mirror flow lands.
40
+ default:
41
+ return null;
42
+ }
43
+ }
44
+ /**
45
+ * Mirror-mode wrapper: decrypt the profile's cookies, filter out the
46
+ * Google-account deny-list. Used by `lobu connector run` so the connector
47
+ * subprocess can run authenticated against a user's Chrome state without
48
+ * launching anything.
49
+ */
50
+ export async function acquireMirroredCookies(params) {
51
+ const result = await decryptChromeCookiesMacOS({
52
+ sourceBrowser: params.sourceBrowser,
53
+ userDataRoot: params.userDataRoot,
54
+ sourceProfileDir: params.sourceProfileDir,
55
+ denyDomains: new Set(GOOGLE_ACCOUNT_DOMAINS_DENY_LIST),
56
+ });
57
+ sdkLogger.info({
58
+ userDataRoot: params.userDataRoot,
59
+ sourceProfileDir: params.sourceProfileDir,
60
+ totalDecryptedCount: result.total_decrypted,
61
+ skippedGoogleCount: result.denied,
62
+ keptCount: result.cookies.length,
63
+ }, '[MirrorCookies] Acquired');
64
+ return {
65
+ cookies: result.cookies,
66
+ skipped_google_count: result.denied,
67
+ total_decrypted_count: result.total_decrypted,
68
+ };
69
+ }
70
+ /**
71
+ * Decrypt cookies from a macOS Chrome profile's SQLite store via the
72
+ * Keychain entry. Generic primitive consumed by both mirror mode (with
73
+ * the Google deny-list) and the CLI's `lobu memory browser-auth` capture
74
+ * flow (with a connector-scoped allow-list). Replaces the older
75
+ * `extractCookiesMacOS` that used to live in
76
+ * `packages/cli/src/commands/memory/_lib/browser-auth-cmd.ts` — that
77
+ * file now imports this.
78
+ */
79
+ export async function decryptChromeCookiesMacOS(params) {
80
+ if (process.platform !== 'darwin') {
81
+ throw new Error(`Mirror cookie acquisition is currently macOS-only (process.platform=${process.platform}). Linux/Windows pending.`);
82
+ }
83
+ const cfg = browserConfig(params.sourceBrowser ?? 'chrome');
84
+ if (!cfg) {
85
+ throw new Error(`Mirror mode does not yet support source_browser='${params.sourceBrowser}' (v1 is Chrome only).`);
86
+ }
87
+ // `sourceProfileDir` is supplied by the CLI/UI (user-picked Chrome
88
+ // profile slug like "Default" or "Profile 1"). Reject anything that
89
+ // contains path separators or parent-dir references so the join below
90
+ // can't escape `userDataRoot` and read an arbitrary SQLite file.
91
+ const profileDir = params.sourceProfileDir;
92
+ if (typeof profileDir !== 'string' ||
93
+ profileDir.length === 0 ||
94
+ /[/\\\0]/.test(profileDir) ||
95
+ profileDir === '.' ||
96
+ profileDir === '..' ||
97
+ profileDir.startsWith('..')) {
98
+ throw new Error(`Invalid sourceProfileDir '${profileDir}': must be a single Chrome profile directory name (e.g. "Default", "Profile 1")`);
99
+ }
100
+ const cookiePath = join(params.userDataRoot, params.sourceProfileDir, 'Cookies');
101
+ if (!existsSync(cookiePath)) {
102
+ throw new Error(`Source Chrome profile has no Cookies file at ${cookiePath}. The profile may have been deleted or renamed — re-pick in Lobu.`);
103
+ }
104
+ const { pbkdf2Sync, createDecipheriv } = await import('node:crypto');
105
+ // node:sqlite is stable on Node 22+; the lobu repo pins Node 22-24.
106
+ // @types/node 20 doesn't include the typings yet, so the dynamic-import
107
+ // module specifier trips the TS resolver — suppress.
108
+ // @ts-expect-error — node:sqlite typings not in @types/node@20
109
+ const { DatabaseSync } = await import('node:sqlite');
110
+ // Chrome holds a write lock on Cookies; copy to temp so the read can
111
+ // happen safely even while Chrome is running. SQLite WAL mode makes the
112
+ // snapshot consistent.
113
+ const tmpDir = mkdtempSync(join(tmpdir(), 'lobu-mirror-'));
114
+ const tmpCookiePath = join(tmpDir, 'Cookies');
115
+ copyFileSync(cookiePath, tmpCookiePath);
116
+ const journalSrc = join(params.userDataRoot, params.sourceProfileDir, 'Cookies-journal');
117
+ if (existsSync(journalSrc)) {
118
+ copyFileSync(journalSrc, join(tmpDir, 'Cookies-journal'));
119
+ }
120
+ try {
121
+ let keychainKey = null;
122
+ try {
123
+ // execFileSync (no shell) — keychain service/account are hardcoded today
124
+ // but if the browserConfig table ever grows from caller input, the shell
125
+ // form would be a command-injection foothold. Pass args explicitly.
126
+ keychainKey = execFileSync('security', [
127
+ 'find-generic-password',
128
+ '-w',
129
+ '-s',
130
+ cfg.keychain.service,
131
+ '-a',
132
+ cfg.keychain.account,
133
+ ], { encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'] }).trim();
134
+ }
135
+ catch {
136
+ keychainKey = null;
137
+ }
138
+ if (!keychainKey) {
139
+ throw new Error('Could not read the Chrome encryption key from macOS Keychain. ' +
140
+ 'If a system dialog appeared, click "Always Allow" and retry. If no dialog appeared, ' +
141
+ 'your Keychain may be locked — run: security unlock-keychain');
142
+ }
143
+ // Chrome's key derivation: PBKDF2(keychainKey, "saltysalt", 1003, 16, sha1).
144
+ const derivedKey = pbkdf2Sync(keychainKey, 'saltysalt', 1003, 16, 'sha1');
145
+ const db = new DatabaseSync(tmpCookiePath, { readOnly: true });
146
+ let rows;
147
+ try {
148
+ rows = db
149
+ .prepare(`SELECT name, host_key, path, encrypted_value,
150
+ CAST(expires_utc AS TEXT) as expires_utc_text,
151
+ is_httponly, is_secure, samesite
152
+ FROM cookies`)
153
+ .all();
154
+ }
155
+ finally {
156
+ // Close the SQLite handle even if prepare/all throws — otherwise the
157
+ // temp DB stays open until the process exits, which on a hot reload
158
+ // path leaks one fd per sync.
159
+ try {
160
+ db.close();
161
+ }
162
+ catch {
163
+ /* best-effort */
164
+ }
165
+ }
166
+ const cookies = [];
167
+ let totalDecrypted = 0;
168
+ let denied = 0;
169
+ let filtered = 0;
170
+ const chromeEpochOffset = 11644473600n;
171
+ const iv = Buffer.alloc(16, ' ');
172
+ const allowSet = params.allowDomains?.length
173
+ ? buildAllowMatcher(params.allowDomains)
174
+ : null;
175
+ for (const row of rows) {
176
+ const raw = row.encrypted_value;
177
+ const encrypted = raw instanceof Buffer ? raw : Buffer.from(raw);
178
+ let value = '';
179
+ if (encrypted.length > 3) {
180
+ const version = encrypted.slice(0, 3).toString('utf-8');
181
+ if (version === 'v10' || version === 'v11') {
182
+ const ciphertext = encrypted.slice(3);
183
+ try {
184
+ const decipher = createDecipheriv('aes-128-cbc', derivedKey, iv);
185
+ const dec = Buffer.concat([decipher.update(ciphertext), decipher.final()]);
186
+ value = extractCookieValue(dec);
187
+ }
188
+ catch {
189
+ continue;
190
+ }
191
+ }
192
+ else {
193
+ value = encrypted.toString('utf-8');
194
+ }
195
+ }
196
+ if (!value && !row.name)
197
+ continue;
198
+ totalDecrypted += 1;
199
+ // Deny-list (e.g. Google account domains for mirror mode) wins over
200
+ // allow-list — keeps callers from accidentally allowing something
201
+ // the deny-list intended to skip.
202
+ if (params.denyDomains && matchesDomainSet(row.host_key, params.denyDomains)) {
203
+ denied += 1;
204
+ continue;
205
+ }
206
+ if (allowSet && !allowSet(row.host_key)) {
207
+ filtered += 1;
208
+ continue;
209
+ }
210
+ // Playwright's addCookies is fail-fast on any invalid entry. A
211
+ // handful of cookies decrypt to garbage (pre-M80 layout, legacy
212
+ // v10 variants); reject anything with non-printable bytes since
213
+ // those are clearly metadata leaking through, not a real value.
214
+ if (!row.name || !row.host_key || !isLikelyCookieValue(value)) {
215
+ filtered += 1;
216
+ continue;
217
+ }
218
+ const rowPath = row.path && row.path.length > 0 ? row.path : '/';
219
+ const expiresUtc = BigInt(row.expires_utc_text ?? '0');
220
+ const expiresUnix = expiresUtc > 0n ? Number(expiresUtc / 1000000n - chromeEpochOffset) : -1;
221
+ // Chrome's `samesite` is -1 (unspecified) | 0 (None) | 1 (Lax) | 2
222
+ // (Strict). Playwright requires exactly one of the three named
223
+ // values; collapse "unspecified" to Lax (the modern Chrome
224
+ // default). "None" requires Secure — promote insecure-None to Lax
225
+ // so the addCookies batch stays valid.
226
+ const sameSite = row.samesite === 0 ? 'None' : row.samesite === 2 ? 'Strict' : 'Lax';
227
+ const finalSameSite = sameSite === 'None' && row.is_secure !== 1 ? 'Lax' : sameSite;
228
+ cookies.push({
229
+ name: row.name,
230
+ value,
231
+ domain: row.host_key,
232
+ path: rowPath,
233
+ expires: expiresUnix,
234
+ httpOnly: row.is_httponly === 1,
235
+ secure: row.is_secure === 1,
236
+ sameSite: finalSameSite,
237
+ });
238
+ }
239
+ return { cookies, total_decrypted: totalDecrypted, denied, filtered };
240
+ }
241
+ finally {
242
+ try {
243
+ rmSync(tmpDir, { recursive: true, force: true });
244
+ }
245
+ catch {
246
+ // ignore tmp dir cleanup failure
247
+ }
248
+ }
249
+ }
250
+ /** Chrome M80+ prepends 32 bytes of SHA256(host_key) to the plaintext
251
+ * before encrypting (per Chromium's `os_crypt_mac.mm`). Slice those off
252
+ * and the remainder is the cookie value, with PKCS#7 padding stripped
253
+ * automatically by Node's `createDecipheriv.final()`. Pre-M80 cookies
254
+ * that lack the prefix decrypt to all-garbage under this slice and get
255
+ * dropped by `isLikelyCookieValue` downstream. */
256
+ function extractCookieValue(buf) {
257
+ if (buf.length <= 32)
258
+ return buf.toString('utf-8');
259
+ return buf.slice(32).toString('utf-8');
260
+ }
261
+ /** Build a host-matching predicate for an allow-list: exact host match or
262
+ * subdomain match (matches `.example.com` and `sub.example.com`). */
263
+ function buildAllowMatcher(domains) {
264
+ const patterns = domains.map((d) => d.replace(/^\./, '').toLowerCase());
265
+ return (host) => {
266
+ const normalized = host.toLowerCase();
267
+ return patterns.some((p) => normalized === p || normalized.endsWith(`.${p}`));
268
+ };
269
+ }
270
+ function matchesDomainSet(host, deny) {
271
+ const normalized = host.replace(/^\./, '').toLowerCase();
272
+ if (deny.has(normalized))
273
+ return true;
274
+ for (const denied of deny) {
275
+ if (normalized.endsWith(`.${denied}`))
276
+ return true;
277
+ }
278
+ return false;
279
+ }
280
+ /** Real cookie values are printable ASCII (the Set-Cookie wire format
281
+ * forbids control characters). Anything else is a decryption artifact
282
+ * we should drop before sending to Playwright. */
283
+ function isLikelyCookieValue(value) {
284
+ if (!value)
285
+ return false;
286
+ for (let i = 0; i < value.length; i++) {
287
+ const c = value.charCodeAt(i);
288
+ if (c < 0x20 || c > 0x7e)
289
+ return false;
290
+ }
291
+ return true;
292
+ }
293
+ //# sourceMappingURL=mirror-cookies.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mirror-cookies.js","sourceRoot":"","sources":["../../src/browser/mirror-cookies.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"browser-network.d.ts","sourceRoot":"","sources":["../src/browser-network.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAA2B,MAAM,EAAE,IAAI,EAAY,MAAM,YAAY,CAAC;AAKlF,MAAM,WAAW,oBAAoB;IACnC,gFAAgF;IAChF,iBAAiB,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACvC,mEAAmE;IACnE,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,uEAAuE;IACvE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kDAAkD;IAClD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,uEAAuE;IACvE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gDAAgD;IAChD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,kEAAkE;IAClE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB,CAAC,KAAK;IACzC,KAAK,EAAE,KAAK,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,qCAAqC;IACrC,OAAO,EAAE,KAAK,GAAG,YAAY,CAAC;CAC/B;AA6ID,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,IAAI,EAAE;IACpD,MAAM,EAAE,oBAAoB,CAAC;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,+EAA+E;IAC/E,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,KAAK,EAAE,CAAC;IACvD,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7C;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAChC;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,OAAO,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAoHvC"}
1
+ {"version":3,"file":"browser-network.d.ts","sourceRoot":"","sources":["../src/browser-network.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAA2B,MAAM,EAAE,IAAI,EAAY,MAAM,YAAY,CAAC;AAKlF,MAAM,WAAW,oBAAoB;IACnC,gFAAgF;IAChF,iBAAiB,EAAE,CAAC,MAAM,GAAG,MAAM,CAAC,EAAE,CAAC;IACvC,mEAAmE;IACnE,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,uEAAuE;IACvE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,kDAAkD;IAClD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,uEAAuE;IACvE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gDAAgD;IAChD,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,kEAAkE;IAClE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,oBAAoB,CAAC,KAAK;IACzC,KAAK,EAAE,KAAK,EAAE,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,qCAAqC;IACrC,OAAO,EAAE,KAAK,GAAG,YAAY,CAAC;CAC/B;AAgKD,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,IAAI,EAAE;IACpD,MAAM,EAAE,oBAAoB,CAAC;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,+EAA+E;IAC/E,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,aAAa,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,KAAK,EAAE,CAAC;IACvD,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAChD,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;IAC7C;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAChC;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,OAAO,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAoHvC"}
@@ -20,6 +20,16 @@ const DEFAULT_CONFIG = {
20
20
  navigationTimeoutMs: 15000,
21
21
  };
22
22
  async function acquireForNetworkSync(cdpUrl, cookies, stealth, userDataDir) {
23
+ // Mirror-mode priority: when the caller already handed us a populated
24
+ // cookie set and didn't pin a specific CDP endpoint, force the headless
25
+ // Playwright + addCookies path. Otherwise an auto-CDP discovery would
26
+ // attach to the user's running Chrome (e.g. M144 remote-debugging
27
+ // toggle) and silently bypass the cookies we just decrypted — fine in
28
+ // the sense that it'd still scrape, but it'd be running through the
29
+ // user's live session instead of the isolated mirror we promised.
30
+ if (cookies.length > 0 && cdpUrl === 'auto') {
31
+ cdpUrl = null;
32
+ }
23
33
  // --- Persistent profile path: cookies live on disk ---
24
34
  if (userDataDir) {
25
35
  const playwrightModule = 'playwright';
@@ -60,8 +70,16 @@ async function acquireForNetworkSync(cdpUrl, cookies, stealth, userDataDir) {
60
70
  loggerLabel: 'BrowserNetwork',
61
71
  preferRealBrowser: true,
62
72
  });
63
- const playwrightModule = 'playwright';
64
- const { chromium } = await import(/* @vite-ignore */ playwrightModule);
73
+ // Use vanilla Playwright for CDP attach. Patchright's FrameSession
74
+ // initialization walks the entire frame tree on connect and throws
75
+ // "Frame was detached" the moment it hits a stale frame in any of
76
+ // the user's other tabs — which is a near-certainty on a real
77
+ // Chrome (we hit it deterministically with 42 open tabs). Vanilla
78
+ // Playwright is tolerant. The stealth patches patchright provides
79
+ // are irrelevant here: this is the user's real browser, the
80
+ // strongest possible cloak.
81
+ const vanillaPwModule = 'playwright-vanilla';
82
+ const { chromium } = await import(/* @vite-ignore */ vanillaPwModule);
65
83
  const browser = await chromium.connectOverCDP(wsUrl);
66
84
  try {
67
85
  // Use the default context (user's session) — don't create a new context
@@ -213,10 +231,16 @@ async function drainPromises(arr) {
213
231
  await Promise.all(batch);
214
232
  }
215
233
  function compileGlob(pattern) {
234
+ // Use a sentinel for `**` so the subsequent `*` → `[^/]*` rewrite doesn't
235
+ // re-rewrite the `*` inside `.*` into `[^/]*` (which turned `**` into
236
+ // `.[^/]*` — match-any-single-char + non-slash run, wrong semantics).
237
+ const DOUBLE_STAR = '\x00DOUBLE_STAR\x00';
216
238
  const escaped = pattern
239
+ .replace(/\*\*/g, DOUBLE_STAR)
217
240
  .replace(/[.+^${}()|[\]\\]/g, '\\$&')
218
- .replace(/\*\*/g, '.*')
219
- .replace(/\*/g, '[^/]*');
241
+ .replace(/\*/g, '[^/]*')
242
+ .split(DOUBLE_STAR)
243
+ .join('.*');
220
244
  return new RegExp(escaped);
221
245
  }
222
246
  //# sourceMappingURL=browser-network.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"browser-network.js","sourceRoot":"","sources":["../src/browser-network.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browser-network.js","sourceRoot":"","sources":["../src/browser-network.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../src/retry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA2GH,UAAU,YAAY;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACnD;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,CAiC/F"}
1
+ {"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../src/retry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAgEH,UAAU,YAAY;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC9B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,IAAI,CAAC;CACnD;AAED;;;;;GAKG;AACH,wBAAsB,aAAa,CAAC,CAAC,EAAE,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,CAAC,CAAC,CA6B/F"}
package/dist/retry.js CHANGED
@@ -8,85 +8,61 @@
8
8
  */
9
9
  import { retryWithBackoff } from '@lobu/core';
10
10
  import { sdkLogger } from './logger.js';
11
- /**
12
- * Error detection helpers
13
- */
14
- function isNetworkError(error) {
15
- const message = error instanceof Error ? error.message : String(error);
16
- const lowerMessage = message.toLowerCase();
17
- const networkKeywords = [
18
- 'network',
19
- 'econnrefused',
20
- 'etimedout',
21
- 'enotfound',
22
- 'econnreset',
23
- 'fetch failed',
24
- 'socket',
25
- 'dns',
26
- ];
27
- return networkKeywords.some((keyword) => lowerMessage.includes(keyword));
28
- }
29
- function isDatabaseError(error) {
30
- const message = error instanceof Error ? error.message : String(error);
31
- const lowerMessage = message.toLowerCase();
32
- const databaseKeywords = [
33
- 'connection pool',
34
- 'too many connections',
35
- 'connection limit',
36
- 'connection reset',
37
- 'connection refused',
38
- 'server closed',
39
- 'connection terminated',
40
- 'connection timeout',
41
- 'deadlock',
42
- 'lock timeout',
43
- 'query timeout',
44
- 'statement timeout',
45
- 'transaction',
46
- 'postgres',
47
- 'postgresql',
48
- 'pg_',
49
- 'relation does not exist',
50
- 'syntax error',
51
- ];
52
- return databaseKeywords.some((keyword) => lowerMessage.includes(keyword));
53
- }
54
- function isRateLimitError(error) {
55
- const message = error instanceof Error ? error.message : String(error);
56
- const lowerMessage = message.toLowerCase();
57
- return (lowerMessage.includes('rate limit') ||
58
- lowerMessage.includes('429') ||
59
- lowerMessage.includes('too many requests'));
60
- }
61
- function isServerError(error) {
62
- const message = error instanceof Error ? error.message : String(error);
63
- const lowerMessage = message.toLowerCase();
64
- const serverErrorCodes = ['500', '502', '503', '504'];
65
- const serverKeywords = ['server error', 'service unavailable', 'gateway timeout'];
66
- return (serverErrorCodes.some((code) => lowerMessage.includes(code)) ||
67
- serverKeywords.some((keyword) => lowerMessage.includes(keyword)));
68
- }
69
- function isRetryableError(error) {
70
- return (isNetworkError(error) ||
71
- isDatabaseError(error) ||
72
- isRateLimitError(error) ||
73
- isServerError(error));
74
- }
75
- function isPermanentError(error) {
76
- const message = error instanceof Error ? error.message : String(error);
77
- const lowerMessage = message.toLowerCase();
78
- const permanentKeywords = [
79
- 'not found',
80
- '404',
81
- 'unauthorized',
82
- '401',
83
- 'forbidden',
84
- '403',
85
- 'invalid',
86
- 'bad request',
87
- '400',
88
- ];
89
- return permanentKeywords.some((keyword) => lowerMessage.includes(keyword));
11
+ const TRANSIENT_KEYWORDS = [
12
+ // network
13
+ 'network',
14
+ 'econnrefused',
15
+ 'etimedout',
16
+ 'enotfound',
17
+ 'econnreset',
18
+ 'fetch failed',
19
+ 'socket',
20
+ 'dns',
21
+ // database
22
+ 'connection pool',
23
+ 'too many connections',
24
+ 'connection limit',
25
+ 'connection reset',
26
+ 'connection refused',
27
+ 'server closed',
28
+ 'connection terminated',
29
+ 'connection timeout',
30
+ 'deadlock',
31
+ 'lock timeout',
32
+ 'query timeout',
33
+ 'statement timeout',
34
+ 'transaction',
35
+ 'postgres',
36
+ 'postgresql',
37
+ 'pg_',
38
+ 'relation does not exist',
39
+ 'syntax error',
40
+ // rate limit
41
+ 'rate limit',
42
+ '429',
43
+ 'too many requests',
44
+ // server
45
+ '500',
46
+ '502',
47
+ '503',
48
+ '504',
49
+ 'server error',
50
+ 'service unavailable',
51
+ 'gateway timeout',
52
+ ];
53
+ const PERMANENT_KEYWORDS = [
54
+ 'not found',
55
+ '404',
56
+ 'unauthorized',
57
+ '401',
58
+ 'forbidden',
59
+ '403',
60
+ 'invalid',
61
+ 'bad request',
62
+ '400',
63
+ ];
64
+ function errorMessage(error) {
65
+ return (error instanceof Error ? error.message : String(error)).toLowerCase();
90
66
  }
91
67
  /**
92
68
  * HTTP retry strategy
@@ -104,16 +80,13 @@ export async function withHttpRetry(fn, options) {
104
80
  strategy: 'exponential',
105
81
  jitter: 'full',
106
82
  shouldRetry: (error) => {
107
- // Abort on permanent errors (404, 401, 403, etc.) or anything we don't
108
- // recognise as transient.
109
- if (isPermanentError(error))
83
+ const msg = errorMessage(error);
84
+ if (PERMANENT_KEYWORDS.some((k) => msg.includes(k)))
110
85
  return false;
111
- return isRetryableError(error);
86
+ return TRANSIENT_KEYWORDS.some((k) => msg.includes(k));
112
87
  },
113
88
  onRetry: (attempt, error) => {
114
- if (options?.onRetry) {
115
- options.onRetry(error, attempt);
116
- }
89
+ options?.onRetry?.(error, attempt);
117
90
  sdkLogger.debug({
118
91
  operation,
119
92
  attempt,
package/dist/retry.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"retry.js","sourceRoot":"","sources":["../src/retry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"retry.js","sourceRoot":"","sources":["../src/retry.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,MAAM,kBAAkB,GAAG;IACzB,UAAU;IACV,SAAS;IACT,cAAc;IACd,WAAW;IACX,WAAW;IACX,YAAY;IACZ,cAAc;IACd,QAAQ;IACR,KAAK;IACL,WAAW;IACX,iBAAiB;IACjB,sBAAsB;IACtB,kBAAkB;IAClB,kBAAkB;IAClB,oBAAoB;IACpB,eAAe;IACf,uBAAuB;IACvB,oBAAoB;IACpB,UAAU;IACV,cAAc;IACd,eAAe;IACf,mBAAmB;IACnB,aAAa;IACb,UAAU;IACV,YAAY;IACZ,KAAK;IACL,yBAAyB;IACzB,cAAc;IACd,aAAa;IACb,YAAY;IACZ,KAAK;IACL,mBAAmB;IACnB,SAAS;IACT,KAAK;IACL,KAAK;IACL,KAAK;IACL,KAAK;IACL,cAAc;IACd,qBAAqB;IACrB,iBAAiB;CAClB,CAAC;AAEF,MAAM,kBAAkB,GAAG;IACzB,WAAW;IACX,KAAK;IACL,cAAc;IACd,KAAK;IACL,WAAW;IACX,KAAK;IACL,SAAS;IACT,aAAa;IACb,KAAK;CACN,CAAC;AAEF,SAAS,YAAY,CAAC,KAAc;IAClC,OAAO,CAAC,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;AAChF,CAAC;AAQD;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAI,EAAoB,EAAE,OAAsB;IACjF,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,gBAAgB,CAAC;IACzD,MAAM,YAAY,GAAG,CAAC,CAAC;IAEvB,OAAO,gBAAgB,CAAC,EAAE,EAAE;QAC1B,UAAU,EAAE,YAAY;QACxB,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE,KAAK;QACf,QAAQ,EAAE,aAAa;QACvB,MAAM,EAAE,MAAM;QACd,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE;YACrB,MAAM,GAAG,GAAG,YAAY,CAAC,KAAK,CAAC,CAAC;YAChC,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAAE,OAAO,KAAK,CAAC;YAClE,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;QACzD,CAAC;QACD,OAAO,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;YAC1B,OAAO,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;YACnC,SAAS,CAAC,KAAK,CACb;gBACE,SAAS;gBACT,OAAO;gBACP,WAAW,EAAE,YAAY,GAAG,OAAO;gBACnC,KAAK,EAAE,KAAK,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC;gBACrC,OAAO,EAAE,OAAO,EAAE,OAAO;aAC1B,EACD,wBAAwB,OAAO,YAAY,YAAY,GAAG,OAAO,eAAe,CACjF,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lobu/connector-sdk",
3
- "version": "7.0.0",
3
+ "version": "7.1.0",
4
4
  "description": "Lobu memory SDK — build pluggable connectors for Lobu memory",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -15,6 +15,18 @@
15
15
  "types": "./dist/index.d.ts",
16
16
  "default": "./dist/index.js"
17
17
  }
18
+ },
19
+ "./browser-mirror": {
20
+ "import": {
21
+ "types": "./dist/browser/mirror-cookies.d.ts",
22
+ "default": "./dist/browser/mirror-cookies.js"
23
+ }
24
+ },
25
+ "./browser-devtools-active-port": {
26
+ "import": {
27
+ "types": "./dist/browser/devtools-active-port.d.ts",
28
+ "default": "./dist/browser/devtools-active-port.js"
29
+ }
18
30
  }
19
31
  },
20
32
  "files": [
@@ -26,16 +38,20 @@
26
38
  "clean": "rm -rf dist"
27
39
  },
28
40
  "dependencies": {
29
- "@lobu/core": "7.0.0",
41
+ "@lobu/core": "7.1.0",
30
42
  "@sinclair/typebox": "^0.34.41",
31
43
  "ky": "^1.14.0"
32
44
  },
33
45
  "peerDependencies": {
34
- "playwright": "npm:patchright@^1.57.0"
46
+ "playwright": "npm:patchright@^1.57.0",
47
+ "playwright-vanilla": "npm:playwright@^1.60.0"
35
48
  },
36
49
  "peerDependenciesMeta": {
37
50
  "playwright": {
38
51
  "optional": true
52
+ },
53
+ "playwright-vanilla": {
54
+ "optional": true
39
55
  }
40
56
  },
41
57
  "devDependencies": {