rensan-browser 0.1.3 → 0.1.4

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":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAQzD,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,MAAM,CAAyB;gBAE3B,MAAM,EAAE,YAAY;IAM1B,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAKvB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAO5B;;;;;;;OAOG;IACG,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAOpC;;;;;;OAMG;IACG,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAMhE;;;;;;;;;;;;;;OAcG;IACG,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAIzE;;;;;;;;;;OAUG;IACG,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CAQ/D"}
1
+ {"version":3,"file":"browser.d.ts","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAQzD,qBAAa,aAAa;IACxB,OAAO,CAAC,OAAO,CAAwB;IACvC,OAAO,CAAC,MAAM,CAA6E;gBAE/E,MAAM,EAAE,YAAY;IAM1B,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAKvB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAO5B;;;;;;;OAOG;IACG,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAOpC;;;;;;OAMG;IACG,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC;IAMhE;;;;;;;;;;;;;;OAcG;IACG,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAIzE;;;;;;;;;;OAUG;IACG,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CAQ/D"}
package/dist/browser.js CHANGED
@@ -40,7 +40,7 @@ class RensanBrowser {
40
40
  await this.launch();
41
41
  const ctx = await this.browser.newContext({ viewport: { width: 1280, height: 800 } });
42
42
  const page = await ctx.newPage();
43
- return new session_1.Session(page, this.config.apiKey, this.config.model, this.config.timeout);
43
+ return new session_1.Session(page, this.config.apiKey, this.config.model, this.config.timeout, this.config.twocaptchaKey);
44
44
  }
45
45
  /**
46
46
  * Open a session and navigate to a URL in one step.
@@ -1 +1 @@
1
- {"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,2CAAoD;AACpD,uCAAoC;AAGpC,MAAM,QAAQ,GAAG;IACf,KAAK,EAAK,kBAAkB;IAC5B,QAAQ,EAAE,IAAI;IACd,OAAO,EAAG,KAAK;CAChB,CAAC;AAEF,MAAa,aAAa;IAIxB,YAAY,MAAoB;QAHxB,YAAO,GAAmB,IAAI,CAAC;QAIrC,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,QAAQ,EAAE,GAAG,MAAM,EAAE,CAAC;IAC3C,CAAC;IAED,gFAAgF;IAEhF,KAAK,CAAC,MAAM;QACV,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QACzB,IAAI,CAAC,OAAO,GAAG,MAAM,qBAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC5C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACtB,CAAC;IAED,gFAAgF;IAEhF;;;;;;;OAOG;IACH,KAAK,CAAC,UAAU;QACd,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACpB,MAAM,GAAG,GAAI,MAAM,IAAI,CAAC,OAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QACxF,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC;QACjC,OAAO,IAAI,iBAAO,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IACvF,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,IAAI,CAAC,GAAW,EAAE,OAAqB;QAC3C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxC,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACjC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,QAAQ,CAAC,IAAc,EAAE,OAAqB;QAClD,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,GAAG,CAAI,EAAoC;QAC/C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxC,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;gBAAS,CAAC;YACT,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QACxB,CAAC;IACH,CAAC;CACF;AAxFD,sCAwFC"}
1
+ {"version":3,"file":"browser.js","sourceRoot":"","sources":["../src/browser.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,2CAAoD;AACpD,uCAAoC;AAGpC,MAAM,QAAQ,GAAG;IACf,KAAK,EAAK,kBAAkB;IAC5B,QAAQ,EAAE,IAAI;IACd,OAAO,EAAG,KAAK;CAChB,CAAC;AAEF,MAAa,aAAa;IAIxB,YAAY,MAAoB;QAHxB,YAAO,GAAmB,IAAI,CAAC;QAIrC,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,QAAQ,EAAE,GAAG,MAAM,EAAE,CAAC;IAC3C,CAAC;IAED,gFAAgF;IAEhF,KAAK,CAAC,MAAM;QACV,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO;QACzB,IAAI,CAAC,OAAO,GAAG,MAAM,qBAAQ,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC5C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;IACtB,CAAC;IAED,gFAAgF;IAEhF;;;;;;;OAOG;IACH,KAAK,CAAC,UAAU;QACd,MAAM,IAAI,CAAC,MAAM,EAAE,CAAC;QACpB,MAAM,GAAG,GAAI,MAAM,IAAI,CAAC,OAAQ,CAAC,UAAU,CAAC,EAAE,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;QACxF,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,OAAO,EAAE,CAAC;QACjC,OAAO,IAAI,iBAAO,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;IAClH,CAAC;IAED;;;;;;OAMG;IACH,KAAK,CAAC,IAAI,CAAC,GAAW,EAAE,OAAqB;QAC3C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxC,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACjC,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACH,KAAK,CAAC,QAAQ,CAAC,IAAc,EAAE,OAAqB;QAClD,OAAO,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAC/D,CAAC;IAED;;;;;;;;;;OAUG;IACH,KAAK,CAAC,GAAG,CAAI,EAAoC;QAC/C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;QACxC,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC;QAC3B,CAAC;gBAAS,CAAC;YACT,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;QACxB,CAAC;IACH,CAAC;CACF;AAxFD,sCAwFC"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * captcha.ts
3
+ * Detect and solve captchas in a Playwright page.
4
+ *
5
+ * Supported:
6
+ * - Image/text captchas → Claude vision reads characters
7
+ * - reCaptcha v2 → 2captcha API (requires twocaptchaKey)
8
+ * - hCaptcha → 2captcha API (requires twocaptchaKey)
9
+ * - Cloudflare challenge → wait for auto-resolve
10
+ */
11
+ import type { Page } from 'playwright';
12
+ import type { AIClient } from './ai';
13
+ export type CaptchaType = 'recaptcha' | 'hcaptcha' | 'cloudflare' | 'image' | 'none';
14
+ export interface CaptchaResult {
15
+ detected: boolean;
16
+ solved: boolean;
17
+ type: CaptchaType;
18
+ }
19
+ export declare function handleCaptcha(page: Page, ai: AIClient, twocaptchaKey?: string): Promise<CaptchaResult>;
20
+ //# sourceMappingURL=captcha.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"captcha.d.ts","sourceRoot":"","sources":["../src/captcha.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAErC,MAAM,MAAM,WAAW,GAAG,WAAW,GAAG,UAAU,GAAG,YAAY,GAAG,OAAO,GAAG,MAAM,CAAC;AAErF,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,WAAW,CAAC;CACnB;AA2JD,wBAAsB,aAAa,CACjC,IAAI,EAAE,IAAI,EACV,EAAE,EAAE,QAAQ,EACZ,aAAa,CAAC,EAAE,MAAM,GACrB,OAAO,CAAC,aAAa,CAAC,CAoBxB"}
@@ -0,0 +1,172 @@
1
+ "use strict";
2
+ /**
3
+ * captcha.ts
4
+ * Detect and solve captchas in a Playwright page.
5
+ *
6
+ * Supported:
7
+ * - Image/text captchas → Claude vision reads characters
8
+ * - reCaptcha v2 → 2captcha API (requires twocaptchaKey)
9
+ * - hCaptcha → 2captcha API (requires twocaptchaKey)
10
+ * - Cloudflare challenge → wait for auto-resolve
11
+ */
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.handleCaptcha = handleCaptcha;
14
+ async function detectType(page) {
15
+ try {
16
+ return await page.evaluate(() => {
17
+ if (document.querySelector('iframe[src*="recaptcha"]') ||
18
+ document.querySelector('.g-recaptcha') ||
19
+ document.querySelector('[data-callback][data-sitekey]'))
20
+ return 'recaptcha';
21
+ if (document.querySelector('iframe[src*="hcaptcha"]') ||
22
+ document.querySelector('.h-captcha'))
23
+ return 'hcaptcha';
24
+ if (document.querySelector('#cf-challenge-running') ||
25
+ document.querySelector('.cf-browser-verification') ||
26
+ document.querySelector('#challenge-running') ||
27
+ (document.title ?? '').toLowerCase().includes('just a moment'))
28
+ return 'cloudflare';
29
+ const body = document.body?.innerHTML?.toLowerCase() ?? '';
30
+ const hasImageCaptcha = !!(document.querySelector('img[src*="captcha"]') ||
31
+ document.querySelector('input[name*="captcha"]') ||
32
+ document.querySelector('[id*="captcha"]') ||
33
+ document.querySelector('[class*="captcha"]'));
34
+ if (hasImageCaptcha && body.includes('captcha'))
35
+ return 'image';
36
+ return 'none';
37
+ });
38
+ }
39
+ catch {
40
+ return 'none';
41
+ }
42
+ }
43
+ async function solveImageCaptcha(page, ai) {
44
+ try {
45
+ // Screenshot the whole page and let Claude find + solve the captcha
46
+ const buf = await page.screenshot({ type: 'jpeg', quality: 70 });
47
+ const b64 = buf.toString('base64');
48
+ // Ask Claude to read the captcha text
49
+ const answer = await ai.read(b64, 'There is a CAPTCHA on this page. Read the distorted characters and reply ONLY with those characters, nothing else. No punctuation.', page.url());
50
+ const captchaText = answer.trim().replace(/\s+/g, '');
51
+ if (!captchaText || captchaText.length < 3 || captchaText.length > 12)
52
+ return false;
53
+ // Find the input field
54
+ const inputSel = await page.evaluate(() => {
55
+ const candidates = [
56
+ 'input[name*="captcha"]',
57
+ 'input[id*="captcha"]',
58
+ 'input[placeholder*="captcha"]',
59
+ 'input[type="text"][name*="code"]',
60
+ 'input[autocomplete="off"][type="text"]',
61
+ ];
62
+ for (const sel of candidates) {
63
+ const el = document.querySelector(sel);
64
+ if (el)
65
+ return sel;
66
+ }
67
+ return null;
68
+ });
69
+ if (!inputSel)
70
+ return false;
71
+ await page.locator(inputSel).fill(captchaText);
72
+ await page.waitForTimeout(300);
73
+ await page.keyboard.press('Enter');
74
+ await page.waitForTimeout(2000);
75
+ return true;
76
+ }
77
+ catch {
78
+ return false;
79
+ }
80
+ }
81
+ async function solveWith2captcha(page, type, apiKey) {
82
+ try {
83
+ const siteKey = await page.evaluate((t) => {
84
+ const sel = t === 'hcaptcha'
85
+ ? '.h-captcha, iframe[src*="hcaptcha"]'
86
+ : '.g-recaptcha, iframe[src*="recaptcha"]';
87
+ const el = document.querySelector(sel);
88
+ if (!el)
89
+ return null;
90
+ // data-sitekey on the wrapper div
91
+ if (el.dataset?.sitekey)
92
+ return el.dataset.sitekey;
93
+ // or src param in iframe
94
+ const iframe = el;
95
+ if (iframe.src) {
96
+ const m = iframe.src.match(/[?&]k=([^&]+)/);
97
+ if (m)
98
+ return m[1];
99
+ }
100
+ return null;
101
+ }, type);
102
+ if (!siteKey)
103
+ return false;
104
+ const pageUrl = page.url();
105
+ const method = type === 'hcaptcha' ? 'hcaptcha' : 'userrecaptcha';
106
+ const paramKey = type === 'hcaptcha' ? 'sitekey' : 'googlekey';
107
+ // Submit captcha task
108
+ const inRes = await fetch(`https://2captcha.com/in.php?key=${apiKey}&method=${method}&${paramKey}=${siteKey}&pageurl=${encodeURIComponent(pageUrl)}&json=1`);
109
+ const inData = await inRes.json();
110
+ if (inData.status !== 1)
111
+ return false;
112
+ const taskId = inData.request;
113
+ // Poll every 5 s, max 90 s
114
+ for (let i = 0; i < 18; i++) {
115
+ await new Promise(r => setTimeout(r, 5000));
116
+ const resData = await fetch(`https://2captcha.com/res.php?key=${apiKey}&action=get&id=${taskId}&json=1`).then(r => r.json());
117
+ if (resData.status === 1) {
118
+ const token = resData.request;
119
+ // Inject token and trigger callback
120
+ await page.evaluate(({ tok, captchaType }) => {
121
+ const responseField = document.querySelector(captchaType === 'hcaptcha'
122
+ ? 'textarea[name="h-captcha-response"]'
123
+ : '#g-recaptcha-response');
124
+ if (responseField) {
125
+ responseField.value = tok;
126
+ responseField.dispatchEvent(new Event('input'));
127
+ responseField.dispatchEvent(new Event('change'));
128
+ }
129
+ // Try to fire captcha callback
130
+ const w = window;
131
+ const cfg = w['___grecaptcha_cfg'];
132
+ if (cfg?.['clients']) {
133
+ const clients = cfg['clients'];
134
+ for (const client of Object.values(clients)) {
135
+ const cb = client['callback'];
136
+ if (typeof cb === 'function')
137
+ cb(tok);
138
+ }
139
+ }
140
+ }, { tok: token, captchaType: type });
141
+ await page.waitForTimeout(1500);
142
+ return true;
143
+ }
144
+ if (resData.request === 'ERROR_CAPTCHA_UNSOLVABLE')
145
+ return false;
146
+ }
147
+ return false;
148
+ }
149
+ catch {
150
+ return false;
151
+ }
152
+ }
153
+ async function handleCaptcha(page, ai, twocaptchaKey) {
154
+ const type = await detectType(page);
155
+ if (type === 'none')
156
+ return { detected: false, solved: false, type: 'none' };
157
+ let solved = false;
158
+ if (type === 'cloudflare') {
159
+ // Cloudflare usually auto-resolves with a real browser — just wait
160
+ await page.waitForTimeout(6000);
161
+ const still = await detectType(page);
162
+ solved = still === 'none';
163
+ }
164
+ else if ((type === 'recaptcha' || type === 'hcaptcha') && twocaptchaKey) {
165
+ solved = await solveWith2captcha(page, type, twocaptchaKey);
166
+ }
167
+ else if (type === 'image') {
168
+ solved = await solveImageCaptcha(page, ai);
169
+ }
170
+ return { detected: true, solved, type };
171
+ }
172
+ //# sourceMappingURL=captcha.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"captcha.js","sourceRoot":"","sources":["../src/captcha.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export { RensanBrowser } from './browser';
2
2
  export { Session } from './session';
3
3
  export type { RensanConfig, CapturedRequest, GotoOptions, FillOptions, ScrollOptions, } from './types';
4
+ export type { CaptchaResult, CaptchaType } from './captcha';
4
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,YAAY,EACV,YAAY,EACZ,eAAe,EACf,WAAW,EACX,WAAW,EACX,aAAa,GACd,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,YAAY,EACV,YAAY,EACZ,eAAe,EACf,WAAW,EACX,WAAW,EACX,aAAa,GACd,MAAM,SAAS,CAAC;AACjB,YAAY,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC"}
package/dist/session.d.ts CHANGED
@@ -14,13 +14,15 @@
14
14
  */
15
15
  import type { Page } from 'playwright';
16
16
  import type { CapturedRequest, GotoOptions, FillOptions, ScrollOptions } from './types';
17
+ import type { CaptchaResult } from './captcha';
17
18
  export declare class Session {
18
19
  readonly page: Page;
19
20
  private defaultTimeout;
20
21
  private ai;
21
22
  private interceptor;
23
+ private twocaptchaKey?;
22
24
  currentUrl: string;
23
- constructor(page: Page, apiKey: string, model: string, defaultTimeout: number);
25
+ constructor(page: Page, apiKey: string, model: string, defaultTimeout: number, twocaptchaKey?: string);
24
26
  goto(url: string, options?: GotoOptions): Promise<void>;
25
27
  wait(ms: number): Promise<void>;
26
28
  screenshot(): Promise<string>;
@@ -83,6 +85,19 @@ export declare class Session {
83
85
  * })
84
86
  */
85
87
  capture(fn: () => Promise<void>): Promise<CapturedRequest[]>;
88
+ /**
89
+ * Detect and solve a captcha on the current page.
90
+ * - Image/text captchas: solved via Claude vision
91
+ * - reCaptcha v2 / hCaptcha: solved via 2captcha API (requires twocaptchaKey in RensanConfig)
92
+ * - Cloudflare challenge: waits for auto-resolve
93
+ *
94
+ * @returns CaptchaResult with detected/solved/type fields
95
+ *
96
+ * @example
97
+ * const result = await session.solveCaptcha()
98
+ * if (result.detected && !result.solved) console.log('Captcha unsolvable:', result.type)
99
+ */
100
+ solveCaptcha(): Promise<CaptchaResult>;
86
101
  close(): Promise<void>;
87
102
  }
88
103
  //# sourceMappingURL=session.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAGvC,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAgBxF,qBAAa,OAAO;IAMhB,QAAQ,CAAC,IAAI,EAAE,IAAI;IAGnB,OAAO,CAAC,cAAc;IARxB,OAAO,CAAC,EAAE,CAAW;IACrB,OAAO,CAAC,WAAW,CAAc;IACjC,UAAU,SAAM;gBAGL,IAAI,EAAE,IAAI,EACnB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACL,cAAc,EAAE,MAAM;IAQ1B,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAS3D,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM/B,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAOnC;;;;;;;OAOG;IACG,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;YAkB7B,aAAa;IAuB3B;;;;;;;OAOG;IACG,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAuDpF;;OAEG;IACG,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAQlE;;;;;;;OAOG;IACG,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAW1C;;;;OAIG;IACG,MAAM,CAAC,SAAS,EAAE,IAAI,GAAG,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IASlF;;;;OAIG;IACG,MAAM,CAAC,MAAM,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAetE,YAAY,IAAI,IAAI;IAKpB,WAAW,IAAI,eAAe,EAAE;IAIhC,IAAI,gBAAgB,IAAI,eAAe,EAAE,CAExC;IAED;;;;;;;OAOG;IACG,OAAO,CAAC,EAAE,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAY5D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,YAAY,CAAC;AAIvC,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AACxF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAgB/C,qBAAa,OAAO;IAOhB,QAAQ,CAAC,IAAI,EAAE,IAAI;IAGnB,OAAO,CAAC,cAAc;IATxB,OAAO,CAAC,EAAE,CAAW;IACrB,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,aAAa,CAAC,CAAS;IAC/B,UAAU,SAAM;gBAGL,IAAI,EAAE,IAAI,EACnB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,EACL,cAAc,EAAE,MAAM,EAC9B,aAAa,CAAC,EAAE,MAAM;IASlB,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAS3D,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAM/B,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAOnC;;;;;;;OAOG;IACG,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;YAkB7B,aAAa;IAuB3B;;;;;;;OAOG;IACG,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAuDpF;;OAEG;IACG,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,WAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAQlE;;;;;;;OAOG;IACG,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAW1C;;;;OAIG;IACG,MAAM,CAAC,SAAS,EAAE,IAAI,GAAG,MAAM,EAAE,OAAO,GAAE,aAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IASlF;;;;OAIG;IACG,MAAM,CAAC,MAAM,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAetE,YAAY,IAAI,IAAI;IAKpB,WAAW,IAAI,eAAe,EAAE;IAIhC,IAAI,gBAAgB,IAAI,eAAe,EAAE,CAExC;IAED;;;;;;;OAOG;IACG,OAAO,CAAC,EAAE,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAYlE;;;;;;;;;;;OAWG;IACG,YAAY,IAAI,OAAO,CAAC,aAAa,CAAC;IAMtC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B"}
package/dist/session.js CHANGED
@@ -17,6 +17,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  exports.Session = void 0;
18
18
  const ai_1 = require("./ai");
19
19
  const interceptor_1 = require("./interceptor");
20
+ const captcha_1 = require("./captcha");
20
21
  // Extra input selectors to try before vision
21
22
  const FILL_SELECTORS = [
22
23
  'input[type="search"]',
@@ -31,12 +32,13 @@ const FILL_SELECTORS = [
31
32
  'textarea',
32
33
  ];
33
34
  class Session {
34
- constructor(page, apiKey, model, defaultTimeout) {
35
+ constructor(page, apiKey, model, defaultTimeout, twocaptchaKey) {
35
36
  this.page = page;
36
37
  this.defaultTimeout = defaultTimeout;
37
38
  this.currentUrl = '';
38
39
  this.ai = new ai_1.AIClient(apiKey, model);
39
40
  this.interceptor = new interceptor_1.Interceptor(page);
41
+ this.twocaptchaKey = twocaptchaKey;
40
42
  }
41
43
  // ─── Navigation ─────────────────────────────────────────────────────────────
42
44
  async goto(url, options = {}) {
@@ -255,6 +257,22 @@ class Session {
255
257
  return this.stopCapture();
256
258
  }
257
259
  }
260
+ // ─── Captcha ─────────────────────────────────────────────────────────────────
261
+ /**
262
+ * Detect and solve a captcha on the current page.
263
+ * - Image/text captchas: solved via Claude vision
264
+ * - reCaptcha v2 / hCaptcha: solved via 2captcha API (requires twocaptchaKey in RensanConfig)
265
+ * - Cloudflare challenge: waits for auto-resolve
266
+ *
267
+ * @returns CaptchaResult with detected/solved/type fields
268
+ *
269
+ * @example
270
+ * const result = await session.solveCaptcha()
271
+ * if (result.detected && !result.solved) console.log('Captcha unsolvable:', result.type)
272
+ */
273
+ async solveCaptcha() {
274
+ return (0, captcha_1.handleCaptcha)(this.page, this.ai, this.twocaptchaKey);
275
+ }
258
276
  // ─── Lifecycle ───────────────────────────────────────────────────────────────
259
277
  async close() {
260
278
  await this.page.close().catch(() => { });
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -7,6 +7,12 @@ export interface RensanConfig {
7
7
  headless?: boolean;
8
8
  /** Default navigation timeout ms. Default: 25000 */
9
9
  timeout?: number;
10
+ /**
11
+ * 2captcha.com API key.
12
+ * When provided, reCaptcha v2 and hCaptcha are solved automatically.
13
+ * Get one at https://2captcha.com
14
+ */
15
+ twocaptchaKey?: string;
10
16
  }
11
17
  export interface GotoOptions {
12
18
  waitUntil?: 'load' | 'domcontentloaded' | 'networkidle';
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,YAAY;IAC3B,wBAAwB;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,qEAAqE;IACrE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oDAAoD;IACpD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAID,MAAM,WAAW,WAAW;IAC1B,SAAS,CAAC,EAAE,MAAM,GAAG,kBAAkB,GAAG,aAAa,CAAC;IACxD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAID,MAAM,WAAW,WAAW;IAC1B,8CAA8C;IAC9C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,qCAAqC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAID,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;CACf;AAID,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAID,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,YAAY;IAC3B,wBAAwB;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,qEAAqE;IACrE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,oDAAoD;IACpD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAID,MAAM,WAAW,WAAW;IAC1B,SAAS,CAAC,EAAE,MAAM,GAAG,kBAAkB,GAAG,aAAa,CAAC;IACxD,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAID,MAAM,WAAW,WAAW;IAC1B,8CAA8C;IAC9C,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,qCAAqC;IACrC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAID,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;CACf;AAID,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAID,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;CACb"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rensan-browser",
3
- "version": "0.1.3",
3
+ "version": "0.1.4",
4
4
  "description": "AI-powered browser for agents — navigate, click, type, read, see images, capture requests",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",