@lobu/connector-sdk 6.0.1 → 7.0.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.
- package/dist/browser/acquire.d.ts +7 -0
- package/dist/browser/acquire.d.ts.map +1 -1
- package/dist/browser/acquire.js +68 -16
- package/dist/browser/acquire.js.map +1 -1
- package/dist/browser/cdp-page.d.ts.map +1 -1
- package/dist/browser/cdp-page.js +40 -12
- package/dist/browser/cdp-page.js.map +1 -1
- package/dist/browser/launcher.d.ts +1 -2
- package/dist/browser/launcher.d.ts.map +1 -1
- package/dist/browser/launcher.js +1 -1
- package/dist/browser/launcher.js.map +1 -1
- package/dist/browser-network.d.ts +6 -0
- package/dist/browser-network.d.ts.map +1 -1
- package/dist/browser-network.js +78 -31
- package/dist/browser-network.js.map +1 -1
- package/dist/connector-types.d.ts +35 -0
- package/dist/connector-types.d.ts.map +1 -1
- package/dist/connector-types.js +3 -0
- package/dist/connector-types.js.map +1 -1
- package/dist/identity-normalize.d.ts +2 -0
- package/dist/identity-normalize.d.ts.map +1 -1
- package/dist/identity-normalize.js +28 -0
- package/dist/identity-normalize.js.map +1 -1
- package/dist/index.d.ts +3 -11
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -7
- package/dist/index.js.map +1 -1
- package/dist/logger.d.ts +5 -4
- package/dist/logger.d.ts.map +1 -1
- package/dist/logger.js +5 -7
- package/dist/logger.js.map +1 -1
- package/dist/retry.d.ts +6 -3
- package/dist/retry.d.ts.map +1 -1
- package/dist/retry.js +29 -33
- package/dist/retry.js.map +1 -1
- package/dist/types.d.ts +0 -164
- package/dist/types.d.ts.map +1 -1
- package/package.json +3 -4
- package/dist/api-paginated.d.ts +0 -79
- package/dist/api-paginated.d.ts.map +0 -1
- package/dist/api-paginated.js +0 -120
- package/dist/api-paginated.js.map +0 -1
- package/dist/base.d.ts +0 -66
- package/dist/base.d.ts.map +0 -1
- package/dist/base.js +0 -122
- package/dist/base.js.map +0 -1
- package/dist/browser-paginated.d.ts +0 -141
- package/dist/browser-paginated.d.ts.map +0 -1
- package/dist/browser-paginated.js +0 -269
- package/dist/browser-paginated.js.map +0 -1
- package/dist/http.d.ts +0 -18
- package/dist/http.d.ts.map +0 -1
- package/dist/http.js +0 -74
- package/dist/http.js.map +0 -1
- package/dist/paginated.d.ts +0 -93
- package/dist/paginated.d.ts.map +0 -1
- package/dist/paginated.js +0 -167
- package/dist/paginated.js.map +0 -1
|
@@ -26,6 +26,13 @@ export interface AcquireBrowserOptions {
|
|
|
26
26
|
authDomains: string[];
|
|
27
27
|
/** Use stealth/anti-detection mode for Playwright launch (default: false). */
|
|
28
28
|
stealth?: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Persistent --user-data-dir for device-bound browser profiles. When set,
|
|
31
|
+
* Playwright launches via launchPersistentContext so cookies/localStorage
|
|
32
|
+
* are read from (and written to) this directory. CDP is skipped — the
|
|
33
|
+
* profile dir is the source of truth.
|
|
34
|
+
*/
|
|
35
|
+
userDataDir?: string;
|
|
29
36
|
}
|
|
30
37
|
export interface AcquiredBrowser {
|
|
31
38
|
/** Playwright Browser (null when using raw CDP). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acquire.d.ts","sourceRoot":"","sources":["../../src/browser/acquire.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAGxE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAOxC,MAAM,WAAW,qBAAqB;IACpC,+EAA+E;IAC/E,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAChC,4DAA4D;IAC5D,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,wEAAwE;IACxE,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,8EAA8E;IAC9E,OAAO,CAAC,EAAE,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"acquire.d.ts","sourceRoot":"","sources":["../../src/browser/acquire.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAGxE,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAOxC,MAAM,WAAW,qBAAqB;IACpC,+EAA+E;IAC/E,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAChC,4DAA4D;IAC5D,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,wEAAwE;IACxE,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,8EAA8E;IAC9E,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,eAAe;IAC9B,oDAAoD;IACpD,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,2DAA2D;IAC3D,OAAO,EAAE,cAAc,GAAG,IAAI,CAAC;IAC/B,uEAAuE;IACvE,IAAI,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,wDAAwD;IACxD,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;IACxB,oEAAoE;IACpE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,8BAA8B;IAC9B,OAAO,EAAE,KAAK,GAAG,YAAY,CAAC;IAC9B,mFAAmF;IACnF,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;gBAE/C,QAAQ,EAAE,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;CAW9D;AAMD;;;GAGG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,qBAAqB,GAAG,OAAO,CAAC,eAAe,CAAC,CAoC1F"}
|
package/dist/browser/acquire.js
CHANGED
|
@@ -44,6 +44,17 @@ export class BrowserAuthCascadeError extends Error {
|
|
|
44
44
|
*/
|
|
45
45
|
export async function acquireBrowser(opts) {
|
|
46
46
|
const attempts = [];
|
|
47
|
+
// --- Persistent profile path: cookies live in --user-data-dir ---
|
|
48
|
+
// Skip CDP entirely — the profile dir is authoritative for cookies/state.
|
|
49
|
+
if (opts.userDataDir) {
|
|
50
|
+
try {
|
|
51
|
+
return await acquireViaPersistent(opts);
|
|
52
|
+
}
|
|
53
|
+
catch (err) {
|
|
54
|
+
attempts.push({ layer: 'Playwright persistent', error: err.message });
|
|
55
|
+
throw new BrowserAuthCascadeError(attempts);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
47
58
|
// --- Layer 1: CDP ---
|
|
48
59
|
if (opts.cdpUrl !== null && opts.cdpUrl !== undefined) {
|
|
49
60
|
try {
|
|
@@ -85,25 +96,66 @@ async function acquireViaCdp(opts) {
|
|
|
85
96
|
screenshotDir: '/tmp/feed-screenshots',
|
|
86
97
|
};
|
|
87
98
|
}
|
|
99
|
+
async function acquireViaPersistent(opts) {
|
|
100
|
+
const playwrightModule = 'playwright';
|
|
101
|
+
const { chromium } = await import(/* @vite-ignore */ playwrightModule);
|
|
102
|
+
const isDebug = process.env.BROWSER_DEBUG === '1';
|
|
103
|
+
const screenshotDir = process.env.BROWSER_SCREENSHOT_DIR ?? '/tmp/feed-screenshots';
|
|
104
|
+
const context = (await chromium.launchPersistentContext(opts.userDataDir, {
|
|
105
|
+
headless: !isDebug,
|
|
106
|
+
args: ['--no-sandbox', '--disable-setuid-sandbox', '--disable-dev-shm-usage'],
|
|
107
|
+
}));
|
|
108
|
+
try {
|
|
109
|
+
if (opts.cookies.length > 0) {
|
|
110
|
+
await context.addCookies(opts.cookies);
|
|
111
|
+
}
|
|
112
|
+
const pages = context.pages();
|
|
113
|
+
const page = pages.length > 0 ? pages[0] : await context.newPage();
|
|
114
|
+
sdkLogger.info({ userDataDir: opts.userDataDir, cookies: opts.cookies.length }, '[BrowserAcquire] Launched Playwright with persistent --user-data-dir');
|
|
115
|
+
return {
|
|
116
|
+
browser: context.browser() ?? null,
|
|
117
|
+
context,
|
|
118
|
+
page,
|
|
119
|
+
cdpPage: null,
|
|
120
|
+
cdpWsUrl: null,
|
|
121
|
+
backend: 'playwright',
|
|
122
|
+
ownsBrowser: true,
|
|
123
|
+
screenshotDir,
|
|
124
|
+
};
|
|
125
|
+
}
|
|
126
|
+
catch (err) {
|
|
127
|
+
// addCookies / newPage failed — close the persistent context so we
|
|
128
|
+
// don't leak a long-lived Chromium process holding the profile lock.
|
|
129
|
+
await context.close().catch(() => { });
|
|
130
|
+
throw err;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
88
133
|
async function acquireViaPlaywright(opts) {
|
|
89
|
-
const { browser, screenshotDir } = await launchBrowser({
|
|
134
|
+
const { browser, screenshotDir } = await launchBrowser({
|
|
90
135
|
stealth: opts.stealth ?? false,
|
|
91
136
|
});
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
137
|
+
try {
|
|
138
|
+
const context = (await browser.newContext());
|
|
139
|
+
if (opts.cookies.length > 0) {
|
|
140
|
+
await context.addCookies(opts.cookies);
|
|
141
|
+
}
|
|
142
|
+
sdkLogger.info({ cookies: opts.cookies.length }, '[BrowserAcquire] Launched Playwright with stored cookies');
|
|
143
|
+
const page = await context.newPage();
|
|
144
|
+
return {
|
|
145
|
+
browser: browser,
|
|
146
|
+
context,
|
|
147
|
+
page,
|
|
148
|
+
cdpPage: null,
|
|
149
|
+
cdpWsUrl: null,
|
|
150
|
+
backend: 'playwright',
|
|
151
|
+
ownsBrowser: true,
|
|
152
|
+
screenshotDir,
|
|
153
|
+
};
|
|
154
|
+
}
|
|
155
|
+
catch (err) {
|
|
156
|
+
// newContext/addCookies/newPage threw — don't leak the launched browser.
|
|
157
|
+
await browser.close().catch(() => { });
|
|
158
|
+
throw err;
|
|
95
159
|
}
|
|
96
|
-
sdkLogger.info({ cookies: opts.cookies.length }, '[BrowserAcquire] Launched Playwright with stored cookies');
|
|
97
|
-
const page = await context.newPage();
|
|
98
|
-
return {
|
|
99
|
-
browser: browser,
|
|
100
|
-
context,
|
|
101
|
-
page,
|
|
102
|
-
cdpPage: null,
|
|
103
|
-
cdpWsUrl: null,
|
|
104
|
-
backend: 'playwright',
|
|
105
|
-
ownsBrowser: true,
|
|
106
|
-
screenshotDir,
|
|
107
|
-
};
|
|
108
160
|
}
|
|
109
161
|
//# sourceMappingURL=acquire.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acquire.js","sourceRoot":"","sources":["../../src/browser/acquire.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"acquire.js","sourceRoot":"","sources":["../../src/browser/acquire.ts"],"names":[],"mappings":"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"}
|
|
@@ -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;
|
|
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"}
|
package/dist/browser/cdp-page.js
CHANGED
|
@@ -52,17 +52,40 @@ export class CdpPage {
|
|
|
52
52
|
ws.send(JSON.stringify({ id, method, params }));
|
|
53
53
|
});
|
|
54
54
|
};
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
targetId,
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
55
|
+
let createdTargetId;
|
|
56
|
+
try {
|
|
57
|
+
const { targetId } = await sendBrowser('Target.createTarget', { url: 'about:blank' });
|
|
58
|
+
createdTargetId = targetId;
|
|
59
|
+
const { sessionId } = await sendBrowser('Target.attachToTarget', {
|
|
60
|
+
targetId,
|
|
61
|
+
flatten: true,
|
|
62
|
+
});
|
|
63
|
+
const page = new CdpPage(ws, sessionId, targetId);
|
|
64
|
+
await page.send('Page.enable');
|
|
65
|
+
await page.send('Runtime.enable');
|
|
66
|
+
await page.send('DOM.enable');
|
|
67
|
+
sdkLogger.info({ targetId }, '[CdpPage] Created tab');
|
|
68
|
+
return page;
|
|
69
|
+
}
|
|
70
|
+
catch (err) {
|
|
71
|
+
// Setup failed after the socket opened — close the target (if created)
|
|
72
|
+
// and the WebSocket so we don't leak the connection on the host.
|
|
73
|
+
if (createdTargetId) {
|
|
74
|
+
try {
|
|
75
|
+
await sendBrowser('Target.closeTarget', { targetId: createdTargetId });
|
|
76
|
+
}
|
|
77
|
+
catch {
|
|
78
|
+
/* best-effort */
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
try {
|
|
82
|
+
ws.close();
|
|
83
|
+
}
|
|
84
|
+
catch {
|
|
85
|
+
/* best-effort */
|
|
86
|
+
}
|
|
87
|
+
throw err;
|
|
88
|
+
}
|
|
66
89
|
}
|
|
67
90
|
send(method, params = {}) {
|
|
68
91
|
return new Promise((resolve, reject) => {
|
|
@@ -86,7 +109,6 @@ export class CdpPage {
|
|
|
86
109
|
await this.send('Page.navigate', { url });
|
|
87
110
|
// Wait for load event
|
|
88
111
|
await new Promise((resolve) => {
|
|
89
|
-
const timer = setTimeout(() => resolve(), timeout);
|
|
90
112
|
const handler = (event) => {
|
|
91
113
|
const data = JSON.parse(event.data);
|
|
92
114
|
if (data.method === 'Page.loadEventFired' && data.sessionId === this.sessionId) {
|
|
@@ -95,6 +117,12 @@ export class CdpPage {
|
|
|
95
117
|
resolve();
|
|
96
118
|
}
|
|
97
119
|
};
|
|
120
|
+
const timer = setTimeout(() => {
|
|
121
|
+
// On timeout, detach the listener so it doesn't stay attached for the
|
|
122
|
+
// life of the (long-lived) CDP session parsing every subsequent frame.
|
|
123
|
+
this.ws.removeEventListener('message', handler);
|
|
124
|
+
resolve();
|
|
125
|
+
}, timeout);
|
|
98
126
|
this.ws.addEventListener('message', handler);
|
|
99
127
|
});
|
|
100
128
|
}
|
|
@@ -1 +1 @@
|
|
|
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,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,GAAG,MAAM,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;gBAC9E,MAAM,OAAO,GAAG,CAAC,KAAmB,EAAE,EAAE;oBACtC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAc,CAAC,CAAC;oBAC9C,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,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,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,WAAW,CAAC,qBAAqB,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"cdp-page.js","sourceRoot":"","sources":["../../src/browser/cdp-page.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,6 @@
|
|
|
2
2
|
* Browser Launcher Utility
|
|
3
3
|
* Provides Playwright-based browser automation
|
|
4
4
|
*/
|
|
5
|
-
import type { Env } from '../types.js';
|
|
6
5
|
export interface BrowserLaunchOptions {
|
|
7
6
|
debug?: boolean;
|
|
8
7
|
trace?: boolean;
|
|
@@ -17,7 +16,7 @@ export interface EnhancedBrowser {
|
|
|
17
16
|
/**
|
|
18
17
|
* Launch browser with Playwright
|
|
19
18
|
*/
|
|
20
|
-
export declare function launchBrowser(
|
|
19
|
+
export declare function launchBrowser(options?: BrowserLaunchOptions): Promise<EnhancedBrowser>;
|
|
21
20
|
/**
|
|
22
21
|
* Capture error artifacts (screenshot, HTML, trace) when feed fails
|
|
23
22
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"launcher.d.ts","sourceRoot":"","sources":["../../src/browser/launcher.ts"],"names":[],"mappings":"AACA;;;GAGG;
|
|
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"}
|
package/dist/browser/launcher.js
CHANGED
|
@@ -23,7 +23,7 @@ function addCompatibilityMethods(page) {
|
|
|
23
23
|
/**
|
|
24
24
|
* Launch browser with Playwright
|
|
25
25
|
*/
|
|
26
|
-
export async function launchBrowser(
|
|
26
|
+
export async function launchBrowser(options = {}) {
|
|
27
27
|
const isDebug = options.debug ?? process.env.BROWSER_DEBUG === '1';
|
|
28
28
|
const enableTrace = options.trace ?? process.env.BROWSER_TRACE === '1';
|
|
29
29
|
const screenshotDir = options.screenshotDir ?? process.env.BROWSER_SCREENSHOT_DIR ?? '/tmp/feed-screenshots';
|
|
@@ -1 +1 @@
|
|
|
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;
|
|
1
|
+
{"version":3,"file":"launcher.js","sourceRoot":"","sources":["../../src/browser/launcher.ts"],"names":[],"mappings":"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"}
|
|
@@ -47,5 +47,11 @@ export declare function browserNetworkSync<TItem>(opts: {
|
|
|
47
47
|
* When set, CDP is tried first; if unavailable, falls back to Playwright + cookies.
|
|
48
48
|
*/
|
|
49
49
|
cdpUrl?: string | 'auto' | null;
|
|
50
|
+
/**
|
|
51
|
+
* Device-bound managed --user-data-dir. When set, Playwright launches via
|
|
52
|
+
* launchPersistentContext and CDP is skipped — cookies live on disk in this
|
|
53
|
+
* profile dir.
|
|
54
|
+
*/
|
|
55
|
+
userDataDir?: string;
|
|
50
56
|
}): Promise<BrowserNetworkResult<TItem>>;
|
|
51
57
|
//# sourceMappingURL=browser-network.d.ts.map
|
|
@@ -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;
|
|
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"}
|
package/dist/browser-network.js
CHANGED
|
@@ -19,7 +19,40 @@ const DEFAULT_CONFIG = {
|
|
|
19
19
|
responseTimeoutMs: 5000,
|
|
20
20
|
navigationTimeoutMs: 15000,
|
|
21
21
|
};
|
|
22
|
-
async function acquireForNetworkSync(cdpUrl, cookies, stealth) {
|
|
22
|
+
async function acquireForNetworkSync(cdpUrl, cookies, stealth, userDataDir) {
|
|
23
|
+
// --- Persistent profile path: cookies live on disk ---
|
|
24
|
+
if (userDataDir) {
|
|
25
|
+
const playwrightModule = 'playwright';
|
|
26
|
+
const { chromium } = await import(/* @vite-ignore */ playwrightModule);
|
|
27
|
+
const isDebug = process.env.BROWSER_DEBUG === '1';
|
|
28
|
+
const screenshotDir = process.env.BROWSER_SCREENSHOT_DIR ?? '/tmp/feed-screenshots';
|
|
29
|
+
const context = (await chromium.launchPersistentContext(userDataDir, {
|
|
30
|
+
headless: !isDebug,
|
|
31
|
+
args: ['--no-sandbox', '--disable-setuid-sandbox', '--disable-dev-shm-usage'],
|
|
32
|
+
}));
|
|
33
|
+
try {
|
|
34
|
+
if (cookies.length > 0) {
|
|
35
|
+
await context.addCookies(cookies);
|
|
36
|
+
}
|
|
37
|
+
const pages = context.pages();
|
|
38
|
+
const page = pages.length > 0 ? pages[0] : await context.newPage();
|
|
39
|
+
sdkLogger.info({ userDataDir, cookies: cookies.length }, '[BrowserNetwork] Launched with persistent --user-data-dir');
|
|
40
|
+
return {
|
|
41
|
+
browser: (context.browser() ?? null),
|
|
42
|
+
context,
|
|
43
|
+
page,
|
|
44
|
+
backend: 'playwright',
|
|
45
|
+
ownsBrowser: true,
|
|
46
|
+
screenshotDir,
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
catch (err) {
|
|
50
|
+
// addCookies / newPage failed — close the persistent context so we
|
|
51
|
+
// don't leak a long-lived Chromium process holding the profile lock.
|
|
52
|
+
await context.close().catch(() => { });
|
|
53
|
+
throw err;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
23
56
|
// --- Layer 1: CDP via Playwright connectOverCDP ---
|
|
24
57
|
if (cdpUrl !== null && cdpUrl !== undefined) {
|
|
25
58
|
try {
|
|
@@ -30,42 +63,56 @@ async function acquireForNetworkSync(cdpUrl, cookies, stealth) {
|
|
|
30
63
|
const playwrightModule = 'playwright';
|
|
31
64
|
const { chromium } = await import(/* @vite-ignore */ playwrightModule);
|
|
32
65
|
const browser = await chromium.connectOverCDP(wsUrl);
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
66
|
+
try {
|
|
67
|
+
// Use the default context (user's session) — don't create a new context
|
|
68
|
+
// which crashes on browsers with many tabs
|
|
69
|
+
const context = browser.contexts()[0];
|
|
70
|
+
if (!context)
|
|
71
|
+
throw new Error('Chrome has no browser context');
|
|
72
|
+
const page = await context.newPage();
|
|
73
|
+
sdkLogger.info({ wsUrl }, '[BrowserNetwork] Connected via CDP');
|
|
74
|
+
return {
|
|
75
|
+
browser,
|
|
76
|
+
context,
|
|
77
|
+
page,
|
|
78
|
+
backend: 'cdp',
|
|
79
|
+
ownsBrowser: false,
|
|
80
|
+
screenshotDir: '/tmp/feed-screenshots',
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
catch (innerErr) {
|
|
84
|
+
// Partial setup after connectOverCDP — close the CDP connection before
|
|
85
|
+
// falling through to the Playwright branch so it isn't left dangling.
|
|
86
|
+
await browser.close().catch(() => { });
|
|
87
|
+
throw innerErr;
|
|
88
|
+
}
|
|
48
89
|
}
|
|
49
90
|
catch (err) {
|
|
50
91
|
sdkLogger.info({ error: err.message }, '[BrowserNetwork] CDP not available, falling back to Playwright');
|
|
51
92
|
}
|
|
52
93
|
}
|
|
53
94
|
// --- Layer 2: Playwright with stored cookies ---
|
|
54
|
-
const { browser, screenshotDir } = await launchBrowser({
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
95
|
+
const { browser, screenshotDir } = await launchBrowser({ stealth });
|
|
96
|
+
try {
|
|
97
|
+
const context = (await browser.newContext());
|
|
98
|
+
if (cookies.length > 0) {
|
|
99
|
+
await context.addCookies(cookies);
|
|
100
|
+
sdkLogger.info({ count: cookies.length }, '[BrowserNetwork] Loaded persisted cookies');
|
|
101
|
+
}
|
|
102
|
+
const page = await context.newPage();
|
|
103
|
+
return {
|
|
104
|
+
browser: browser,
|
|
105
|
+
context,
|
|
106
|
+
page,
|
|
107
|
+
backend: 'playwright',
|
|
108
|
+
ownsBrowser: true,
|
|
109
|
+
screenshotDir,
|
|
110
|
+
};
|
|
111
|
+
}
|
|
112
|
+
catch (err) {
|
|
113
|
+
await browser.close().catch(() => { });
|
|
114
|
+
throw err;
|
|
59
115
|
}
|
|
60
|
-
const page = await context.newPage();
|
|
61
|
-
return {
|
|
62
|
-
browser: browser,
|
|
63
|
-
context,
|
|
64
|
-
page,
|
|
65
|
-
backend: 'playwright',
|
|
66
|
-
ownsBrowser: true,
|
|
67
|
-
screenshotDir,
|
|
68
|
-
};
|
|
69
116
|
}
|
|
70
117
|
// ---------------------------------------------------------------------------
|
|
71
118
|
// Main entry point
|
|
@@ -77,7 +124,7 @@ export async function browserNetworkSync(opts) {
|
|
|
77
124
|
// Pre-compile string glob patterns into RegExp for hot-path matching
|
|
78
125
|
const matchers = cfg.interceptPatterns.map((p) => typeof p === 'string' ? compileGlob(p) : p);
|
|
79
126
|
const matchesUrl = (url) => matchers.some((re) => re.test(url));
|
|
80
|
-
const acquired = await acquireForNetworkSync(opts.cdpUrl ?? null, opts.cookies, cfg.stealth ?? false);
|
|
127
|
+
const acquired = await acquireForNetworkSync(opts.userDataDir ? null : (opts.cdpUrl ?? null), opts.cookies, cfg.stealth ?? false, opts.userDataDir);
|
|
81
128
|
const { context, page, backend, ownsBrowser, browser, screenshotDir } = acquired;
|
|
82
129
|
try {
|
|
83
130
|
// Accumulates promises from async response handlers between drain points
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"browser-network.js","sourceRoot":"","sources":["../src/browser-network.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAGH,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,qBAAqB,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AA2BxC,MAAM,cAAc,GAKhB;IACF,UAAU,EAAE,EAAE;IACd,aAAa,EAAE,IAAI;IACnB,iBAAiB,EAAE,IAAI;IACvB,mBAAmB,EAAE,KAAK;CAC3B,CAAC;AAgBF,KAAK,UAAU,qBAAqB,CAClC,MAA0C,EAC1C,OAAiB,EACjB,OAAgB;
|
|
1
|
+
{"version":3,"file":"browser-network.js","sourceRoot":"","sources":["../src/browser-network.ts"],"names":[],"mappings":"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"}
|
|
@@ -35,6 +35,30 @@ export interface ConnectorDefinition {
|
|
|
35
35
|
includeTags?: string[];
|
|
36
36
|
serverUrl?: string;
|
|
37
37
|
};
|
|
38
|
+
/**
|
|
39
|
+
* Optional worker capability required to run this connector. Workers advertise
|
|
40
|
+
* capabilities on poll; the runs scheduler only hands a connector run to a
|
|
41
|
+
* worker whose capabilities array includes this value. Unset = any worker
|
|
42
|
+
* (default API/browser fleet). Example: `'screentime'` for apple.screen_time
|
|
43
|
+
* (only Lobu for Mac, with Full Disk Access, can read the Knowledge store).
|
|
44
|
+
*/
|
|
45
|
+
requiredCapability?: string;
|
|
46
|
+
/**
|
|
47
|
+
* Present only for device-bound connectors. Omitting this field means the
|
|
48
|
+
* connector runs on the server-side worker fleet (cloud). `platforms` lists
|
|
49
|
+
* the host platforms a device worker (e.g. Lobu for Mac) must be running on
|
|
50
|
+
* to serve this connector's runs.
|
|
51
|
+
*/
|
|
52
|
+
runtime?: ConnectorRuntimeInfo;
|
|
53
|
+
}
|
|
54
|
+
export interface ConnectorRuntimeInfo {
|
|
55
|
+
/** Platforms this connector can run on. */
|
|
56
|
+
platforms: Array<'ios' | 'android' | 'macos' | 'windows' | 'linux'>;
|
|
57
|
+
/**
|
|
58
|
+
* Permission/auth scopes forwarded verbatim to the native platform adapter.
|
|
59
|
+
* Optional — omit when the platform adapter needs no fine-grained scope list.
|
|
60
|
+
*/
|
|
61
|
+
scopes?: string[];
|
|
38
62
|
}
|
|
39
63
|
export interface ConnectorAuthSchema {
|
|
40
64
|
methods: ConnectorAuthMethod[];
|
|
@@ -130,6 +154,14 @@ export interface FeedDefinition {
|
|
|
130
154
|
displayNameTemplate?: string;
|
|
131
155
|
/** JSON Schema for feed-specific config */
|
|
132
156
|
configSchema?: Record<string, unknown>;
|
|
157
|
+
/**
|
|
158
|
+
* When true, auto-wire (device-reconcile + bundled-connector install) skips
|
|
159
|
+
* this feed — every feed instance is created explicitly by the user (or by
|
|
160
|
+
* the device worker on their behalf). Use this for feeds whose configSchema
|
|
161
|
+
* has required fields that can only be supplied by an external actor, e.g.
|
|
162
|
+
* `local.directory.files` needs a per-folder `folder_id` from the Mac app.
|
|
163
|
+
*/
|
|
164
|
+
userManaged?: boolean;
|
|
133
165
|
/** Event kinds this feed produces, keyed by kind slug */
|
|
134
166
|
eventKinds?: Record<string, {
|
|
135
167
|
description?: string;
|
|
@@ -236,6 +268,9 @@ export declare const IDENTITY: {
|
|
|
236
268
|
readonly WA_JID: "wa_jid";
|
|
237
269
|
readonly SLACK_USER_ID: "slack_user_id";
|
|
238
270
|
readonly GITHUB_LOGIN: "github_login";
|
|
271
|
+
readonly GITHUB_USER_ID: "github_user_id";
|
|
272
|
+
readonly GITHUB_REPO_ID: "github_repo_id";
|
|
273
|
+
readonly GITHUB_REPO_FULL_NAME: "github_repo_full_name";
|
|
239
274
|
readonly AUTH_USER_ID: "auth_user_id";
|
|
240
275
|
readonly GOOGLE_CONTACT_ID: "google_contact_id";
|
|
241
276
|
};
|