@enricai/barnacle 1.6.11 → 1.6.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/README.md +113 -9
  2. package/dist/api/schemas/submissions.d.ts +14 -0
  3. package/dist/api/schemas/submissions.d.ts.map +1 -1
  4. package/dist/api/schemas/submissions.js +1 -0
  5. package/dist/api/schemas/submissions.js.map +1 -1
  6. package/dist/config.d.ts +33 -0
  7. package/dist/config.d.ts.map +1 -1
  8. package/dist/config.js +4 -0
  9. package/dist/config.js.map +1 -1
  10. package/dist/lib/telemetry/beacon-capture.d.ts +45 -2
  11. package/dist/lib/telemetry/beacon-capture.d.ts.map +1 -1
  12. package/dist/lib/telemetry/beacon-capture.js +36 -0
  13. package/dist/lib/telemetry/beacon-capture.js.map +1 -1
  14. package/dist/lib/telemetry/reconciliation-record.d.ts +50 -2
  15. package/dist/lib/telemetry/reconciliation-record.d.ts.map +1 -1
  16. package/dist/lib/telemetry/reconciliation-record.js +60 -7
  17. package/dist/lib/telemetry/reconciliation-record.js.map +1 -1
  18. package/dist/lib/telemetry/reconciliation-source.d.ts +7 -1
  19. package/dist/lib/telemetry/reconciliation-source.d.ts.map +1 -1
  20. package/dist/lib/telemetry/reconciliation-source.js +21 -5
  21. package/dist/lib/telemetry/reconciliation-source.js.map +1 -1
  22. package/dist/lib/telemetry/run-telemetry.d.ts +67 -0
  23. package/dist/lib/telemetry/run-telemetry.d.ts.map +1 -0
  24. package/dist/lib/telemetry/run-telemetry.js +55 -0
  25. package/dist/lib/telemetry/run-telemetry.js.map +1 -0
  26. package/dist/lib/telemetry/submission-capture.d.ts +11 -4
  27. package/dist/lib/telemetry/submission-capture.d.ts.map +1 -1
  28. package/dist/lib/telemetry/submission-capture.js +1 -0
  29. package/dist/lib/telemetry/submission-capture.js.map +1 -1
  30. package/dist/lib/telemetry/submission-reader.d.ts +11 -3
  31. package/dist/lib/telemetry/submission-reader.d.ts.map +1 -1
  32. package/dist/lib/telemetry/submission-reader.js +32 -8
  33. package/dist/lib/telemetry/submission-reader.js.map +1 -1
  34. package/dist/lib/tracking-click.d.ts.map +1 -1
  35. package/dist/lib/tracking-click.js +19 -0
  36. package/dist/lib/tracking-click.js.map +1 -1
  37. package/dist/plugins/loader.d.ts +20 -0
  38. package/dist/plugins/loader.d.ts.map +1 -1
  39. package/dist/plugins/loader.js +94 -17
  40. package/dist/plugins/loader.js.map +1 -1
  41. package/dist/scraper/deep-locator-actuate.d.ts +94 -0
  42. package/dist/scraper/deep-locator-actuate.d.ts.map +1 -0
  43. package/dist/scraper/deep-locator-actuate.js +216 -0
  44. package/dist/scraper/deep-locator-actuate.js.map +1 -0
  45. package/dist/scraper/deep-locator-candidates.d.ts +105 -18
  46. package/dist/scraper/deep-locator-candidates.d.ts.map +1 -1
  47. package/dist/scraper/deep-locator-candidates.js +238 -46
  48. package/dist/scraper/deep-locator-candidates.js.map +1 -1
  49. package/dist/scraper/deep-locator-click.d.ts +71 -0
  50. package/dist/scraper/deep-locator-click.d.ts.map +1 -0
  51. package/dist/scraper/deep-locator-click.js +71 -0
  52. package/dist/scraper/deep-locator-click.js.map +1 -0
  53. package/dist/scraper/deep-locator-fake.d.ts +344 -14
  54. package/dist/scraper/deep-locator-fake.d.ts.map +1 -1
  55. package/dist/scraper/deep-locator-fake.js +509 -7
  56. package/dist/scraper/deep-locator-fake.js.map +1 -1
  57. package/dist/scraper/deep-locator-scan.d.ts +220 -0
  58. package/dist/scraper/deep-locator-scan.d.ts.map +1 -0
  59. package/dist/scraper/deep-locator-scan.js +386 -0
  60. package/dist/scraper/deep-locator-scan.js.map +1 -0
  61. package/dist/scraper/fake-timer-advance.d.ts +47 -0
  62. package/dist/scraper/fake-timer-advance.d.ts.map +1 -0
  63. package/dist/scraper/fake-timer-advance.js +44 -0
  64. package/dist/scraper/fake-timer-advance.js.map +1 -0
  65. package/dist/scraper/flow-runner.d.ts +36 -1
  66. package/dist/scraper/flow-runner.d.ts.map +1 -1
  67. package/dist/scraper/flow-runner.js +354 -56
  68. package/dist/scraper/flow-runner.js.map +1 -1
  69. package/dist/scraper/frame-target.d.ts +28 -0
  70. package/dist/scraper/frame-target.d.ts.map +1 -1
  71. package/dist/scraper/frame-target.js +30 -0
  72. package/dist/scraper/frame-target.js.map +1 -1
  73. package/dist/scraper/session-browserbase.d.ts +13 -0
  74. package/dist/scraper/session-browserbase.d.ts.map +1 -1
  75. package/dist/scraper/session-browserbase.js +29 -0
  76. package/dist/scraper/session-browserbase.js.map +1 -1
  77. package/dist/scraper/session-ip.d.ts +69 -0
  78. package/dist/scraper/session-ip.d.ts.map +1 -0
  79. package/dist/scraper/session-ip.js +88 -0
  80. package/dist/scraper/session-ip.js.map +1 -0
  81. package/dist/scraper/session-shared.d.ts +9 -0
  82. package/dist/scraper/session-shared.d.ts.map +1 -1
  83. package/dist/scraper/session-shared.js.map +1 -1
  84. package/dist/scraper/submit-control.d.ts +14 -2
  85. package/dist/scraper/submit-control.d.ts.map +1 -1
  86. package/dist/scraper/submit-control.js +33 -2
  87. package/dist/scraper/submit-control.js.map +1 -1
  88. package/dist/scripts/recon-browser.d.ts.map +1 -1
  89. package/dist/scripts/recon-browser.js +32 -0
  90. package/dist/scripts/recon-browser.js.map +1 -1
  91. package/dist/site-plugin.d.ts +20 -0
  92. package/dist/site-plugin.d.ts.map +1 -1
  93. package/dist/testing/integration-runner.d.ts.map +1 -1
  94. package/dist/testing/integration-runner.js +6 -7
  95. package/dist/testing/integration-runner.js.map +1 -1
  96. package/package.json +1 -1
@@ -64,6 +64,34 @@ export declare function mainFrameTarget(page: Page, opts?: {
64
64
  declaredFrameSelector?: string | null;
65
65
  evaluateTimeoutMs?: number;
66
66
  }): FrameTarget;
67
+ /**
68
+ * Single non-polling presence probe for a frame that may have already
69
+ * attached — the seam callers should use instead of hand-rolling
70
+ * `resolveFrameTarget(page, frameSelector, { timeoutMs: 0 })` for an
71
+ * "is it already there?" check (`deep-locator-actuate.ts`,
72
+ * `deep-locator-candidates.ts`, `flow-runner.ts`'s
73
+ * `reresolveFrameTargetIfLost`). That zero-budget pattern sets
74
+ * `tryResolveChildFrame`'s deadline to `Date.now() + 0`, so every probe
75
+ * clamps to `Math.min(evaluateTimeoutMs, remainingBudgetMs()) === 0` — a
76
+ * `setTimeout(reject, 0)` macrotask that always wins the race against a
77
+ * genuinely awaited CDP round-trip, so the probe can never observe an
78
+ * already-attached frame outside of a same-tick-resolving test fake. This
79
+ * probe's deadline instead starts `probeFloorMs` (config-backed via
80
+ * `config.scraper.framePresenceProbeFloorMs`) in the future, giving each
81
+ * `withWatchdog` call a real budget a CDP round-trip can land within.
82
+ *
83
+ * Still never polls: exactly one top-level iframe-src probe, plus — per
84
+ * `tryResolveChildFrame`'s existing `index > 0 && remainingBudgetMs() <= 0`
85
+ * bound — at most one further candidate probe, so a single call costs at
86
+ * most ~2x `probeFloorMs` regardless of how many `page.frames()` candidates
87
+ * exist. Returns `null` (never a main-frame fallback) when nothing attaches
88
+ * within the floor, so a caller can tell "not present yet" apart from a
89
+ * resolved target and keep its own fallback behavior.
90
+ */
91
+ export declare function probeAttachedFrameTarget(page: Page, frameSelector: string, opts?: {
92
+ evaluateTimeoutMs?: number;
93
+ probeFloorMs?: number;
94
+ }): Promise<FrameTarget | null>;
67
95
  /**
68
96
  * Resolves the `FrameTarget` for `frameSelector` against `page`, polling for
69
97
  * up to `timeoutMs` (at `pollMs` intervals) before falling back to the
@@ -1 +1 @@
1
- {"version":3,"file":"frame-target.d.ts","sourceRoot":"","sources":["../../src/scraper/frame-target.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAQrD,kHAAkH;AAClH,KAAK,cAAc,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzD;;;;;;;GAOG;AACH,MAAM,WAAW,WAAW;IAC1B,uFAAuF;IACvF,QAAQ,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,CAAC;IACtC,uIAAuI;IACvI,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/C,wGAAwG;IACxG,QAAQ,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,GAAG,OAAO,EACjC,wBAAwB,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,EACjE,GAAG,CAAC,EAAE,GAAG,GACR,OAAO,CAAC,CAAC,CAAC,CAAC;IACd,wFAAwF;IACxF,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IACvD,6EAA6E;IAC7E,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACvB,gMAAgM;IAChM,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CAC1B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,IAAI,EACV,IAAI,GAAE;IAAE,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAAO,GAC/E,WAAW,CAmBb;AAwJD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,IAAI,EACV,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,EAC7B,IAAI,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAAO,GAC7E,OAAO,CAAC,WAAW,CAAC,CAqBtB;AAID;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,aAAa,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACxC,aAAa,EAAE,MAAM,GACpB,MAAM,CAOR;AAKD,+FAA+F;AAC/F,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/C;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,WAAW,EACnB,IAAI,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAAO,GAC7E,OAAO,CAAC,IAAI,CAAC,CAyBf"}
1
+ {"version":3,"file":"frame-target.d.ts","sourceRoot":"","sources":["../../src/scraper/frame-target.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAQrD,kHAAkH;AAClH,KAAK,cAAc,GAAG,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AAEzD;;;;;;;GAOG;AACH,MAAM,WAAW,WAAW;IAC1B,uFAAuF;IACvF,QAAQ,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,CAAC;IACtC,uIAAuI;IACvI,QAAQ,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC;;;;;;;;;;;;OAYG;IACH,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/C,wGAAwG;IACxG,QAAQ,CAAC,CAAC,GAAG,OAAO,EAAE,GAAG,GAAG,OAAO,EACjC,wBAAwB,EAAE,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,EACjE,GAAG,CAAC,EAAE,GAAG,GACR,OAAO,CAAC,CAAC,CAAC,CAAC;IACd,wFAAwF;IACxF,OAAO,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IACvD,6EAA6E;IAC7E,GAAG,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IACvB,gMAAgM;IAChM,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CAC1B;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,IAAI,EACV,IAAI,GAAE;IAAE,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAAO,GAC/E,WAAW,CAmBb;AAwJD;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,wBAAwB,CAC5C,IAAI,EAAE,IAAI,EACV,aAAa,EAAE,MAAM,EACrB,IAAI,GAAE;IAAE,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAAC,YAAY,CAAC,EAAE,MAAM,CAAA;CAAO,GAC/D,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,CAI7B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,IAAI,EACV,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,EAC7B,IAAI,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAAO,GAC7E,OAAO,CAAC,WAAW,CAAC,CAqBtB;AAID;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,aAAa,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EACxC,aAAa,EAAE,MAAM,GACpB,MAAM,CAOR;AAKD,+FAA+F;AAC/F,wBAAgB,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE/C;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,WAAW,EACnB,IAAI,GAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;CAAO,GAC7E,OAAO,CAAC,IAAI,CAAC,CAyBf"}
@@ -13,6 +13,7 @@
13
13
  */
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.mainFrameTarget = mainFrameTarget;
16
+ exports.probeAttachedFrameTarget = probeAttachedFrameTarget;
16
17
  exports.resolveFrameTarget = resolveFrameTarget;
17
18
  exports.buildHopSelector = buildHopSelector;
18
19
  exports.sleep = sleep;
@@ -176,6 +177,35 @@ async function tryResolveChildFrame(page, frameSelector, evaluateTimeoutMs, dead
176
177
  }
177
178
  return null;
178
179
  }
180
+ /**
181
+ * Single non-polling presence probe for a frame that may have already
182
+ * attached — the seam callers should use instead of hand-rolling
183
+ * `resolveFrameTarget(page, frameSelector, { timeoutMs: 0 })` for an
184
+ * "is it already there?" check (`deep-locator-actuate.ts`,
185
+ * `deep-locator-candidates.ts`, `flow-runner.ts`'s
186
+ * `reresolveFrameTargetIfLost`). That zero-budget pattern sets
187
+ * `tryResolveChildFrame`'s deadline to `Date.now() + 0`, so every probe
188
+ * clamps to `Math.min(evaluateTimeoutMs, remainingBudgetMs()) === 0` — a
189
+ * `setTimeout(reject, 0)` macrotask that always wins the race against a
190
+ * genuinely awaited CDP round-trip, so the probe can never observe an
191
+ * already-attached frame outside of a same-tick-resolving test fake. This
192
+ * probe's deadline instead starts `probeFloorMs` (config-backed via
193
+ * `config.scraper.framePresenceProbeFloorMs`) in the future, giving each
194
+ * `withWatchdog` call a real budget a CDP round-trip can land within.
195
+ *
196
+ * Still never polls: exactly one top-level iframe-src probe, plus — per
197
+ * `tryResolveChildFrame`'s existing `index > 0 && remainingBudgetMs() <= 0`
198
+ * bound — at most one further candidate probe, so a single call costs at
199
+ * most ~2x `probeFloorMs` regardless of how many `page.frames()` candidates
200
+ * exist. Returns `null` (never a main-frame fallback) when nothing attaches
201
+ * within the floor, so a caller can tell "not present yet" apart from a
202
+ * resolved target and keep its own fallback behavior.
203
+ */
204
+ async function probeAttachedFrameTarget(page, frameSelector, opts = {}) {
205
+ const evaluateTimeoutMs = opts.evaluateTimeoutMs ?? config_1.config.scraper.frameEvaluateTimeoutMs;
206
+ const probeFloorMs = opts.probeFloorMs ?? config_1.config.scraper.framePresenceProbeFloorMs;
207
+ return tryResolveChildFrame(page, frameSelector, evaluateTimeoutMs, Date.now() + probeFloorMs);
208
+ }
179
209
  /**
180
210
  * Resolves the `FrameTarget` for `frameSelector` against `page`, polling for
181
211
  * up to `timeoutMs` (at `pollMs` intervals) before falling back to the
@@ -1 +1 @@
1
- {"version":3,"file":"frame-target.js","sourceRoot":"","sources":["../../src/scraper/frame-target.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"frame-target.js","sourceRoot":"","sources":["../../src/scraper/frame-target.ts"],"names":[],"mappings":"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"}
@@ -47,6 +47,19 @@ export declare function makeFilteredStagehandLogger(pinoLogger: Logger): {
47
47
  reportSuppressed: () => void;
48
48
  getSuppressedCount: () => number;
49
49
  };
50
+ /**
51
+ * Wraps a session's outbound-IP resolver so it fires the echo navigation at
52
+ * most once per session and memoizes the result — two concurrent callers
53
+ * (e.g. dispatch and tracking-click) share one in-flight resolution instead
54
+ * of each triggering their own tab load. Gated on `enabled` so a disabled
55
+ * capture flag short-circuits before ever invoking `resolve`, and `resolve`
56
+ * failures are swallowed to `null` so a caller can never observe a rejection
57
+ * from this accessor, matching the never-throw contract `resolveSessionOutboundIp`
58
+ * already holds for the underlying navigation.
59
+ */
60
+ export declare function makeOutboundIpAccessor(resolve: () => Promise<string | null>, opts: {
61
+ enabled: boolean;
62
+ }): () => Promise<string | null>;
50
63
  /**
51
64
  * Spins up one Browserbase cloud session with the configured Stagehand LLM.
52
65
  *
@@ -1 +1 @@
1
- {"version":3,"file":"session-browserbase.d.ts","sourceRoot":"","sources":["../../src/scraper/session-browserbase.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAG3B,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAI9C;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC7D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,MAAM,GAAG;IAC/D,QAAQ,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC3C,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,kBAAkB,EAAE,MAAM,MAAM,CAAC;CAClC,CA6BA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,+BAA+B,CACnD,IAAI,CAAC,EAAE,IAAI,CAAC,qBAAqB,EAAE,iBAAiB,GAAG,gCAAgC,CAAC,GACvF,OAAO,CAAC,cAAc,CAAC,CAsHzB"}
1
+ {"version":3,"file":"session-browserbase.d.ts","sourceRoot":"","sources":["../../src/scraper/session-browserbase.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAG3B,MAAM,0BAA0B,CAAC;AAElC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAI9C;;;;GAIG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC7D;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,MAAM,GAAG;IAC/D,QAAQ,EAAE,CAAC,IAAI,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC3C,gBAAgB,EAAE,MAAM,IAAI,CAAC;IAC7B,kBAAkB,EAAE,MAAM,MAAM,CAAC;CAClC,CA6BA;AAED;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,EACrC,IAAI,EAAE;IAAE,OAAO,EAAE,OAAO,CAAA;CAAE,GACzB,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAS9B;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,+BAA+B,CACnD,IAAI,CAAC,EAAE,IAAI,CAAC,qBAAqB,EAAE,iBAAiB,GAAG,gCAAgC,CAAC,GACvF,OAAO,CAAC,cAAc,CAAC,CAiIzB"}
@@ -1,12 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.makeFilteredStagehandLogger = makeFilteredStagehandLogger;
4
+ exports.makeOutboundIpAccessor = makeOutboundIpAccessor;
4
5
  exports.createBrowserbaseBrowserSession = createBrowserbaseBrowserSession;
5
6
  const stagehand_1 = require("@browserbasehq/stagehand");
6
7
  const config_1 = require("../config");
7
8
  const bedrock_1 = require("../lib/bedrock");
8
9
  const errors_1 = require("../lib/errors");
9
10
  const logging_1 = require("../lib/logging");
11
+ const session_ip_1 = require("../scraper/session-ip");
10
12
  const session_shared_1 = require("../scraper/session-shared");
11
13
  const throttle_1 = require("../scraper/throttle");
12
14
  const logger = (0, logging_1.getLogger)({ name: "scraper/session-browserbase" });
@@ -68,6 +70,27 @@ function makeFilteredStagehandLogger(pinoLogger) {
68
70
  const getSuppressedCount = () => suppressedCount;
69
71
  return { callback, reportSuppressed, getSuppressedCount };
70
72
  }
73
+ /**
74
+ * Wraps a session's outbound-IP resolver so it fires the echo navigation at
75
+ * most once per session and memoizes the result — two concurrent callers
76
+ * (e.g. dispatch and tracking-click) share one in-flight resolution instead
77
+ * of each triggering their own tab load. Gated on `enabled` so a disabled
78
+ * capture flag short-circuits before ever invoking `resolve`, and `resolve`
79
+ * failures are swallowed to `null` so a caller can never observe a rejection
80
+ * from this accessor, matching the never-throw contract `resolveSessionOutboundIp`
81
+ * already holds for the underlying navigation.
82
+ */
83
+ function makeOutboundIpAccessor(resolve, opts) {
84
+ let inFlight;
85
+ return () => {
86
+ if (!opts.enabled)
87
+ return Promise.resolve(null);
88
+ if (!inFlight) {
89
+ inFlight = resolve().catch(() => null);
90
+ }
91
+ return inFlight;
92
+ };
93
+ }
71
94
  /**
72
95
  * Spins up one Browserbase cloud session with the configured Stagehand LLM.
73
96
  *
@@ -203,6 +226,11 @@ async function createBrowserbaseBrowserSession(opts) {
203
226
  const sessionId = stagehand.browserbaseSessionID ?? "unknown";
204
227
  logger.info(`created browserbase session ${sessionId} viewport=${viewport.width}x${viewport.height} proxies=${useResidentialProxy} advancedStealth=${advancedStealth}`);
205
228
  const limiter = (0, throttle_1.createSessionLimiter)();
229
+ const getOutboundIp = makeOutboundIpAccessor(() => (0, session_ip_1.resolveSessionOutboundIp)(() => stagehand.context.newPage(), {
230
+ echoUrl: config_1.config.scraper.sessionIpEchoUrl,
231
+ timeoutMs: config_1.config.scraper.sessionIpTimeoutMs,
232
+ logger,
233
+ }), { enabled: config_1.config.scraper.captureSessionIp });
206
234
  const close = async () => {
207
235
  try {
208
236
  await stagehand.close();
@@ -220,6 +248,7 @@ async function createBrowserbaseBrowserSession(opts) {
220
248
  provider: "browserbase",
221
249
  close,
222
250
  getSuppressedAisdkElementIdErrorCount,
251
+ getOutboundIp,
223
252
  };
224
253
  }
225
254
  //# sourceMappingURL=session-browserbase.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"session-browserbase.js","sourceRoot":"","sources":["../../src/scraper/session-browserbase.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session-browserbase.js","sourceRoot":"","sources":["../../src/scraper/session-browserbase.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Resolves a browser session's outbound IP by opening a throwaway top-level
3
+ * tab and navigating it to an IP-echo endpoint. Neither the Browserbase SDK
4
+ * nor Stagehand exposes a session's actual outbound IP anywhere else (session
5
+ * create/get, logs, and recording endpoints all omit it) — having the session
6
+ * itself hit an echo endpoint is the only way to learn it.
7
+ *
8
+ * Typed against a minimal page factory rather than `Stagehand`/`V3Context` so
9
+ * it can be unit-tested with fakes, no CDP connection or network required.
10
+ * Provider wiring (constructing the real factory from a live session) and
11
+ * config plumbing for `echoUrl`/`timeoutMs` are out of scope here.
12
+ */
13
+ import type { Logger } from "../types/logging";
14
+ /**
15
+ * Minimal page surface this module needs — a structural subset of
16
+ * Stagehand's `Page` (`goto`, `evaluate`, `close`) so a real `Page` instance
17
+ * satisfies this type without casting, while tests can supply a fake with no
18
+ * Stagehand dependency at all.
19
+ */
20
+ export interface EchoPage {
21
+ goto(url: string, options?: {
22
+ waitUntil?: string;
23
+ timeoutMs?: number;
24
+ }): Promise<unknown>;
25
+ evaluate<R>(pageFunctionOrExpression: string): Promise<R>;
26
+ close(): Promise<void>;
27
+ }
28
+ /**
29
+ * Opens a new top-level tab and returns it. Production callers pass
30
+ * `() => stagehand.context.newPage()`; the resolver never constructs a
31
+ * Stagehand/CDP object itself.
32
+ */
33
+ export type EchoPageFactory = () => Promise<EchoPage>;
34
+ /** Tuning knobs for {@link resolveSessionOutboundIp}. */
35
+ export interface SessionOutboundIpOptions {
36
+ /**
37
+ * IP-echo endpoint the tab navigates to. Caller-supplied (not defaulted
38
+ * here) so an operator can point at a self-hosted echo endpoint instead of
39
+ * a third-party one.
40
+ */
41
+ echoUrl: string;
42
+ /**
43
+ * Bound on the whole open+navigate+read sequence, enforced via
44
+ * `withWatchdog`. A tab that never settles yields `null` instead of
45
+ * blocking the caller forever.
46
+ */
47
+ timeoutMs: number;
48
+ /** Optional logger for failure diagnostics; omitted call sites stay silent. */
49
+ logger?: Logger;
50
+ }
51
+ /**
52
+ * Opens a throwaway top-level tab via `newPage`, navigates it to
53
+ * `opts.echoUrl`, and reads back whatever IP the echo endpoint reports as
54
+ * this session's outbound address. Never throws — every failure path
55
+ * (timeout, non-IP body, a thrown error from the page) resolves to `null`,
56
+ * matching the swallow-all telemetry contract `captureSubmissionEnvelope`
57
+ * holds elsewhere, since this value must never break a submission run.
58
+ *
59
+ * The tab is always closed, on every path, including the timeout path,
60
+ * since `page` is captured as soon as `newPage()` resolves and closed in a
61
+ * `finally` regardless of how the navigate/read step settles.
62
+ *
63
+ * Caveat: Browserbase does not document whether its managed residential
64
+ * proxy pool is sticky per session, so callers should pair a resolved value
65
+ * with a capture timestamp rather than assume it's stable for the run's
66
+ * duration.
67
+ */
68
+ export declare function resolveSessionOutboundIp(newPage: EchoPageFactory, opts: SessionOutboundIpOptions): Promise<string | null>;
69
+ //# sourceMappingURL=session-ip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-ip.d.ts","sourceRoot":"","sources":["../../src/scraper/session-ip.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9C;;;;;GAKG;AACH,MAAM,WAAW,QAAQ;IACvB,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAC1F,QAAQ,CAAC,CAAC,EAAE,wBAAwB,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;IAC1D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CACxB;AAED;;;;GAIG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEtD,yDAAyD;AACzD,MAAM,WAAW,wBAAwB;IACvC;;;;OAIG;IACH,OAAO,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,SAAS,EAAE,MAAM,CAAC;IAClB,+EAA+E;IAC/E,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAmCD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,eAAe,EACxB,IAAI,EAAE,wBAAwB,GAC7B,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAwBxB"}
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ /**
3
+ * Resolves a browser session's outbound IP by opening a throwaway top-level
4
+ * tab and navigating it to an IP-echo endpoint. Neither the Browserbase SDK
5
+ * nor Stagehand exposes a session's actual outbound IP anywhere else (session
6
+ * create/get, logs, and recording endpoints all omit it) — having the session
7
+ * itself hit an echo endpoint is the only way to learn it.
8
+ *
9
+ * Typed against a minimal page factory rather than `Stagehand`/`V3Context` so
10
+ * it can be unit-tested with fakes, no CDP connection or network required.
11
+ * Provider wiring (constructing the real factory from a live session) and
12
+ * config plumbing for `echoUrl`/`timeoutMs` are out of scope here.
13
+ */
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ exports.resolveSessionOutboundIp = resolveSessionOutboundIp;
16
+ const node_net_1 = require("node:net");
17
+ const errors_1 = require("../lib/errors");
18
+ const watchdog_1 = require("../scraper/watchdog");
19
+ const BODY_TEXT_EXPR = 'document.body ? document.body.innerText : ""';
20
+ const WATCHDOG_LABEL = "session-outbound-ip:echo";
21
+ /**
22
+ * Extracts a validated IP from an echo endpoint's response body. Accepts
23
+ * both `{"ip":"..."}` JSON (ipify's JSON mode) and a bare-text body (a
24
+ * self-hosted plain-text echo) so the resolver isn't tied to one provider's
25
+ * response shape. Returns `null` for anything that isn't a valid IPv4/IPv6
26
+ * shape — most notably a captive-portal HTML page — rather than persisting
27
+ * garbage as telemetry.
28
+ */
29
+ function extractIpFromBody(body) {
30
+ const trimmed = body.trim();
31
+ const candidate = (() => {
32
+ try {
33
+ const parsed = JSON.parse(trimmed);
34
+ if (parsed !== null &&
35
+ typeof parsed === "object" &&
36
+ "ip" in parsed &&
37
+ typeof parsed.ip === "string") {
38
+ return parsed.ip.trim();
39
+ }
40
+ }
41
+ catch {
42
+ // not JSON — fall through to bare-text handling below
43
+ }
44
+ return trimmed;
45
+ })();
46
+ return (0, node_net_1.isIP)(candidate) !== 0 ? candidate : null;
47
+ }
48
+ /**
49
+ * Opens a throwaway top-level tab via `newPage`, navigates it to
50
+ * `opts.echoUrl`, and reads back whatever IP the echo endpoint reports as
51
+ * this session's outbound address. Never throws — every failure path
52
+ * (timeout, non-IP body, a thrown error from the page) resolves to `null`,
53
+ * matching the swallow-all telemetry contract `captureSubmissionEnvelope`
54
+ * holds elsewhere, since this value must never break a submission run.
55
+ *
56
+ * The tab is always closed, on every path, including the timeout path,
57
+ * since `page` is captured as soon as `newPage()` resolves and closed in a
58
+ * `finally` regardless of how the navigate/read step settles.
59
+ *
60
+ * Caveat: Browserbase does not document whether its managed residential
61
+ * proxy pool is sticky per session, so callers should pair a resolved value
62
+ * with a capture timestamp rather than assume it's stable for the run's
63
+ * duration.
64
+ */
65
+ async function resolveSessionOutboundIp(newPage, opts) {
66
+ const { echoUrl, timeoutMs, logger } = opts;
67
+ let page;
68
+ try {
69
+ return await (0, watchdog_1.withWatchdog)(async () => {
70
+ page = await newPage();
71
+ await page.goto(echoUrl, { waitUntil: "domcontentloaded", timeoutMs });
72
+ const body = await page.evaluate(BODY_TEXT_EXPR);
73
+ return extractIpFromBody(body);
74
+ }, { timeoutMs, label: WATCHDOG_LABEL });
75
+ }
76
+ catch (err) {
77
+ logger?.warn(`session outbound ip resolution failed: ${(0, errors_1.toErrorMessage)(err)}`);
78
+ return null;
79
+ }
80
+ finally {
81
+ if (page) {
82
+ await page.close().catch((closeErr) => {
83
+ logger?.warn(`session outbound ip echo tab close failed: ${(0, errors_1.toErrorMessage)(closeErr)}`);
84
+ });
85
+ }
86
+ }
87
+ }
88
+ //# sourceMappingURL=session-ip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-ip.js","sourceRoot":"","sources":["../../src/scraper/session-ip.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;AAEH,uCAAgC;AAEhC,yCAA8C;AAC9C,iDAAkD;AAwClD,MAAM,cAAc,GAAG,8CAA8C,CAAC;AACtE,MAAM,cAAc,GAAG,0BAA0B,CAAC;AAElD;;;;;;;GAOG;AACH,SAAS,iBAAiB,CAAC,IAAY;IACrC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,MAAM,SAAS,GAAG,CAAC,GAAW,EAAE;QAC9B,IAAI,CAAC;YACH,MAAM,MAAM,GAAY,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC5C,IACE,MAAM,KAAK,IAAI;gBACf,OAAO,MAAM,KAAK,QAAQ;gBAC1B,IAAI,IAAI,MAAM;gBACd,OAAQ,MAA0B,CAAC,EAAE,KAAK,QAAQ,EAClD,CAAC;gBACD,OAAQ,MAAyB,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;YAC9C,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,sDAAsD;QACxD,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC,EAAE,CAAC;IAEL,OAAO,IAAA,eAAI,EAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC;AAClD,CAAC;AAED;;;;;;;;;;;;;;;;GAgBG;AACI,KAAK,mCACV,OAAwB,EACxB,IAA8B;IAE9B,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC5C,IAAI,IAA0B,CAAC;IAE/B,IAAI,CAAC;QACH,OAAO,MAAM,IAAA,uBAAY,EACvB,KAAK,IAAI,EAAE;YACT,IAAI,GAAG,MAAM,OAAO,EAAE,CAAC;YACvB,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,kBAAkB,EAAE,SAAS,EAAE,CAAC,CAAC;YACvE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAS,cAAc,CAAC,CAAC;YACzD,OAAO,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACjC,CAAC,EACD,EAAE,SAAS,EAAE,KAAK,EAAE,cAAc,EAAE,CACrC,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,EAAE,IAAI,CAAC,0CAA0C,IAAA,uBAAc,EAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAC9E,OAAO,IAAI,CAAC;IACd,CAAC;YAAS,CAAC;QACT,IAAI,IAAI,EAAE,CAAC;YACT,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,QAAiB,EAAE,EAAE;gBAC7C,MAAM,EAAE,IAAI,CAAC,8CAA8C,IAAA,uBAAc,EAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;YACzF,CAAC,CAAC,CAAC;QACL,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -37,6 +37,15 @@ export interface BrowserSession {
37
37
  * this upstream error (currently Browserbase); absent on Steel.
38
38
  */
39
39
  getSuppressedAisdkElementIdErrorCount?: () => number;
40
+ /**
41
+ * Lazily resolves and memoizes this session's outbound IP, so any caller
42
+ * (dispatch, tracking-click) can learn it once per session without
43
+ * repeating the echo navigation. Only present on providers where the
44
+ * proxied outbound IP is worth capturing (currently Browserbase); absent
45
+ * on Steel. Resolves to `null` when capture is disabled or resolution
46
+ * fails — never rejects.
47
+ */
48
+ getOutboundIp?: () => Promise<string | null>;
40
49
  }
41
50
  /**
42
51
  * Returns a fetch wrapper that aborts after `timeoutMs` milliseconds.
@@ -1 +1 @@
1
- {"version":3,"file":"session-shared.d.ts","sourceRoot":"","sources":["../../src/scraper/session-shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,UAAU,MAAM,YAAY,CAAC;AAIzC,8BAA8B;AAC9B,MAAM,MAAM,YAAY,GAAG,aAAa,GAAG,OAAO,CAAC;AAEnD;;;;;;GAMG;AACH,MAAM,MAAM,8BAA8B,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IACrE,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC3C,CAAC;AAEF,uDAAuD;AACvD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,8BAA8B,CAAC,EAAE,8BAA8B,CAAC;CACjE;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,SAAS,CAAC;IACrB,OAAO,EAAE,UAAU,CAAC;IACpB,8DAA8D;IAC9D,SAAS,EAAE,MAAM,CAAC;IAClB,6EAA6E;IAC7E,QAAQ,EAAE,YAAY,CAAC;IACvB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB;;;;OAIG;IACH,qCAAqC,CAAC,EAAE,MAAM,MAAM,CAAC;CACtD;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,KAAK,CAYlE;AAaD,wBAAgB,kBAAkB,IAAI;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAEtE"}
1
+ {"version":3,"file":"session-shared.d.ts","sourceRoot":"","sources":["../../src/scraper/session-shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,KAAK,UAAU,MAAM,YAAY,CAAC;AAIzC,8BAA8B;AAC9B,MAAM,MAAM,YAAY,GAAG,aAAa,GAAG,OAAO,CAAC;AAEnD;;;;;;GAMG;AACH,MAAM,MAAM,8BAA8B,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IACrE,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC3C,CAAC;AAEF,uDAAuD;AACvD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,8BAA8B,CAAC,EAAE,8BAA8B,CAAC;CACjE;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,SAAS,CAAC;IACrB,OAAO,EAAE,UAAU,CAAC;IACpB,8DAA8D;IAC9D,SAAS,EAAE,MAAM,CAAC;IAClB,6EAA6E;IAC7E,QAAQ,EAAE,YAAY,CAAC;IACvB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB;;;;OAIG;IACH,qCAAqC,CAAC,EAAE,MAAM,MAAM,CAAC;IACrD;;;;;;;OAOG;IACH,aAAa,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC;CAC9C;AAED;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,KAAK,CAYlE;AAaD,wBAAgB,kBAAkB,IAAI;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAEtE"}
@@ -1 +1 @@
1
- {"version":3,"file":"session-shared.js","sourceRoot":"","sources":["../../src/scraper/session-shared.ts"],"names":[],"mappings":";;;;AAGA,yCAA0C;AA4C1C;;;;GAIG;AACH,4BAAmC,SAAiB;IAClD,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;QACnB,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC;QAC9D,kFAAkF;QAClF,gDAAgD;QAChD,MAAM,OAAO,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,MAAM,CACtD,CAAC,CAAC,EAAoB,EAAE,CAAC,CAAC,YAAY,WAAW,CAClD,CAAC;QACF,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC1E,OAAO,KAAK,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5E,CAAC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,SAAS,GAAG;IAChB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE;IAC5B,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE;IAC5B,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE;IAC5B,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;CACrB,CAAC;AAEX;IACE,OAAO,IAAA,mBAAU,EAAC,SAAS,CAAC,CAAC;AAC/B,CAAC"}
1
+ {"version":3,"file":"session-shared.js","sourceRoot":"","sources":["../../src/scraper/session-shared.ts"],"names":[],"mappings":";;;;AAGA,yCAA0C;AAqD1C;;;;GAIG;AACH,4BAAmC,SAAiB;IAClD,OAAO,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;QACnB,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,KAAK,EAAE,EAAE,SAAS,CAAC,CAAC;QAC9D,kFAAkF;QAClF,gDAAgD;QAChD,MAAM,OAAO,GAAG,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,MAAM,CACtD,CAAC,CAAC,EAAoB,EAAE,CAAC,CAAC,YAAY,WAAW,CAClD,CAAC;QACF,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QAC1E,OAAO,KAAK,CAAC,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5E,CAAC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,SAAS,GAAG;IAChB,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE;IAC5B,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE;IAC5B,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE;IAC5B,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE;CACrB,CAAC;AAEX;IACE,OAAO,IAAA,mBAAU,EAAC,SAAS,CAAC,CAAC;AAC/B,CAAC"}
@@ -15,7 +15,11 @@
15
15
  * highest first. Ties within a tier keep document order. Elements that
16
16
  * match no positive tier — including anything caught by
17
17
  * {@link NEGATIVE_TEXT_EXPR} — are excluded entirely rather than ranked
18
- * last, so the caller never has to guess where the "safe" cutoff is.
18
+ * last, so the caller never has to guess where the "safe" cutoff is. Same
19
+ * treatment for a node that fails {@link IS_VISIBLE_EXPR}: a hidden
20
+ * per-step submit button in a wizard (0x0 layout box, `display:none`) is
21
+ * dropped before ranking so it can never outrank the rendered one and win
22
+ * a click that would silently no-op.
19
23
  *
20
24
  * Each returned candidate carries `deepIndex`, the candidate's position in
21
25
  * this same deterministic deep-traversal order. {@link buildClickByDeepIndexExpr}
@@ -39,7 +43,13 @@ export declare function buildRankSubmitCandidatesExpr(root?: string): string;
39
43
  * mousedown/mouseup/click, matching `deep-query.ts`'s controlled-state click
40
44
  * convention). Returns `{ clicked: false }` without throwing if the index is
41
45
  * out of range for the current DOM (e.g. the page changed between the
42
- * locate and click calls).
46
+ * locate and click calls), and `{ clicked: false, reason: "not-actionable" }`
47
+ * without dispatching any event if the element at that index fails
48
+ * {@link IS_VISIBLE_EXPR} — a node with no layout box makes a real click
49
+ * throw a CDP `-32000 Node does not have a layout object` error, so this
50
+ * check reports the same outcome as data instead. `buildRankSubmitCandidatesExpr`
51
+ * already filters unrendered candidates out of its ranking, so this only
52
+ * fires when the DOM changed between the rank and click calls.
43
53
  *
44
54
  * `root` overrides the traversal root expression (default `"document"`)
45
55
  * and must match the `root` passed to the {@link buildRankSubmitCandidatesExpr}
@@ -60,5 +70,7 @@ export interface SubmitCandidate {
60
70
  /** Result of {@link buildClickByDeepIndexExpr}'s `page.evaluate` call. */
61
71
  export interface ClickByDeepIndexResult {
62
72
  clicked: boolean;
73
+ /** Present only when `clicked` is `false` and the element existed but had no layout box — distinguishes an unrendered element from a stale (out-of-range) index. */
74
+ reason?: "not-actionable";
63
75
  }
64
76
  //# sourceMappingURL=submit-control.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"submit-control.d.ts","sourceRoot":"","sources":["../../src/scraper/submit-control.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAyEH;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,6BAA6B,CAAC,IAAI,SAAa,GAAG,MAAM,CAsBvE;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,SAAa,GAAG,MAAM,CAYtF;AAED,2HAA2H;AAC3H,MAAM,MAAM,mBAAmB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAE5C,qGAAqG;AACrG,MAAM,WAAW,eAAe;IAC9B,mIAAmI;IACnI,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,mBAAmB,CAAC;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,0EAA0E;AAC1E,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAC;CAClB"}
1
+ {"version":3,"file":"submit-control.d.ts","sourceRoot":"","sources":["../../src/scraper/submit-control.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AA2FH;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,wBAAgB,6BAA6B,CAAC,IAAI,SAAa,GAAG,MAAM,CAwBvE;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,yBAAyB,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,SAAa,GAAG,MAAM,CActF;AAED,2HAA2H;AAC3H,MAAM,MAAM,mBAAmB,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AAE5C,qGAAqG;AACrG,MAAM,WAAW,eAAe;IAC9B,mIAAmI;IACnI,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,mBAAmB,CAAC;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,0EAA0E;AAC1E,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAC;IACjB,oKAAoK;IACpK,MAAM,CAAC,EAAE,gBAAgB,CAAC;CAC3B"}
@@ -33,6 +33,23 @@ const ACCESSIBLE_NAME_EXPR = `((el) => {
33
33
  const norm = (s) => (s || "").replace(/\\s+/g, " ").trim().toLowerCase();
34
34
  return norm(el.getAttribute("aria-label") || el.textContent || "");
35
35
  })`;
36
+ /**
37
+ * Visibility check: a node with a 0x0 layout box, or a computed
38
+ * `display:none`/`visibility:hidden`, can never be the target of a real
39
+ * click. Duplicated from `deep-locator-scan.ts`'s private `IS_VISIBLE_EXPR`
40
+ * rather than imported — both are browser-context expression strings
41
+ * composed by string interpolation, matching the convention this module
42
+ * already follows for {@link DEEP_ELEMENTS_EXPR}. Applied both when ranking
43
+ * (so an unrendered node never outranks a rendered one) and when clicking
44
+ * (so a node that became hidden between the rank and click calls is
45
+ * reported as not-actionable instead of dispatching a no-op click).
46
+ */
47
+ const IS_VISIBLE_EXPR = `((el) => {
48
+ const rect = el.getBoundingClientRect();
49
+ if (rect.width === 0 && rect.height === 0) return false;
50
+ const style = getComputedStyle(el);
51
+ return style.display !== "none" && style.visibility !== "hidden";
52
+ })`;
36
53
  /**
37
54
  * Recursive open-shadow-root walker, identical in shape to `deep-query.ts`'s
38
55
  * private `DEEP_ELEMENTS_EXPR` (duplicated rather than imported because both
@@ -86,7 +103,11 @@ const RANK_TIERS_EXPR = `((el, name) => {
86
103
  * highest first. Ties within a tier keep document order. Elements that
87
104
  * match no positive tier — including anything caught by
88
105
  * {@link NEGATIVE_TEXT_EXPR} — are excluded entirely rather than ranked
89
- * last, so the caller never has to guess where the "safe" cutoff is.
106
+ * last, so the caller never has to guess where the "safe" cutoff is. Same
107
+ * treatment for a node that fails {@link IS_VISIBLE_EXPR}: a hidden
108
+ * per-step submit button in a wizard (0x0 layout box, `display:none`) is
109
+ * dropped before ranking so it can never outrank the rendered one and win
110
+ * a click that would silently no-op.
90
111
  *
91
112
  * Each returned candidate carries `deepIndex`, the candidate's position in
92
113
  * this same deterministic deep-traversal order. {@link buildClickByDeepIndexExpr}
@@ -106,6 +127,7 @@ function buildRankSubmitCandidatesExpr(root = "document") {
106
127
  return `(() => {
107
128
  const accessibleName = ${ACCESSIBLE_NAME_EXPR};
108
129
  const rankTier = ${RANK_TIERS_EXPR};
130
+ const isVisible = ${IS_VISIBLE_EXPR};
109
131
  const deepElements = ${DEEP_ELEMENTS_EXPR};
110
132
  const all = deepElements(${root});
111
133
  const ranked = [];
@@ -114,6 +136,7 @@ function buildRankSubmitCandidatesExpr(root = "document") {
114
136
  const name = accessibleName(el);
115
137
  const tier = rankTier(el, name);
116
138
  if (tier === 0) continue;
139
+ if (!isVisible(el)) continue;
117
140
  ranked.push({
118
141
  deepIndex: i,
119
142
  tier,
@@ -132,7 +155,13 @@ function buildRankSubmitCandidatesExpr(root = "document") {
132
155
  * mousedown/mouseup/click, matching `deep-query.ts`'s controlled-state click
133
156
  * convention). Returns `{ clicked: false }` without throwing if the index is
134
157
  * out of range for the current DOM (e.g. the page changed between the
135
- * locate and click calls).
158
+ * locate and click calls), and `{ clicked: false, reason: "not-actionable" }`
159
+ * without dispatching any event if the element at that index fails
160
+ * {@link IS_VISIBLE_EXPR} — a node with no layout box makes a real click
161
+ * throw a CDP `-32000 Node does not have a layout object` error, so this
162
+ * check reports the same outcome as data instead. `buildRankSubmitCandidatesExpr`
163
+ * already filters unrendered candidates out of its ranking, so this only
164
+ * fires when the DOM changed between the rank and click calls.
136
165
  *
137
166
  * `root` overrides the traversal root expression (default `"document"`)
138
167
  * and must match the `root` passed to the {@link buildRankSubmitCandidatesExpr}
@@ -141,10 +170,12 @@ function buildRankSubmitCandidatesExpr(root = "document") {
141
170
  */
142
171
  function buildClickByDeepIndexExpr(deepIndex, root = "document") {
143
172
  return `(() => {
173
+ const isVisible = ${IS_VISIBLE_EXPR};
144
174
  const deepElements = ${DEEP_ELEMENTS_EXPR};
145
175
  const all = deepElements(${root});
146
176
  const el = all[${JSON.stringify(deepIndex)}];
147
177
  if (!el) return { clicked: false };
178
+ if (!isVisible(el)) return { clicked: false, reason: "not-actionable" };
148
179
  if (typeof el.focus === "function") { try { el.focus(); } catch (e) {} }
149
180
  el.dispatchEvent(new Event("mousedown", { bubbles: true }));
150
181
  el.dispatchEvent(new Event("mouseup", { bubbles: true }));
@@ -1 +1 @@
1
- {"version":3,"file":"submit-control.js","sourceRoot":"","sources":["../../src/scraper/submit-control.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;;AAEH;;;;;;GAMG;AACH,MAAM,kBAAkB,GAAG;;;GAGxB,CAAC;AAEJ;;;;;GAKG;AACH,MAAM,oBAAoB,GAAG;;;GAG1B,CAAC;AAEJ;;;;;GAKG;AACH,MAAM,kBAAkB,GAAG;;;;;;;;;;;GAWxB,CAAC;AAEJ;;;;;;;;;;;;;;GAcG;AACH,MAAM,eAAe,GAAG;uBACD,kBAAkB;;;;;;;;;;;GAWtC,CAAC;AAEJ;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,uCAA8C,IAAI,GAAG,UAAU;IAC7D,OAAO;6BACoB,oBAAoB;uBAC1B,eAAe;2BACX,kBAAkB;+BACd,IAAI;;;;;;;;;;;;;;;;OAgB5B,CAAC;AACR,CAAC;AAED;;;;;;;;;;;;;GAaG;AACH,mCAA0C,SAAiB,EAAE,IAAI,GAAG,UAAU;IAC5E,OAAO;2BACkB,kBAAkB;+BACd,IAAI;qBACd,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;;;;;;;OAOvC,CAAC;AACR,CAAC"}
1
+ {"version":3,"file":"submit-control.js","sourceRoot":"","sources":["../../src/scraper/submit-control.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;;AAEH;;;;;;GAMG;AACH,MAAM,kBAAkB,GAAG;;;GAGxB,CAAC;AAEJ;;;;;GAKG;AACH,MAAM,oBAAoB,GAAG;;;GAG1B,CAAC;AAEJ;;;;;;;;;;GAUG;AACH,MAAM,eAAe,GAAG;;;;;GAKrB,CAAC;AAEJ;;;;;GAKG;AACH,MAAM,kBAAkB,GAAG;;;;;;;;;;;GAWxB,CAAC;AAEJ;;;;;;;;;;;;;;GAcG;AACH,MAAM,eAAe,GAAG;uBACD,kBAAkB;;;;;;;;;;;GAWtC,CAAC;AAEJ;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,uCAA8C,IAAI,GAAG,UAAU;IAC7D,OAAO;6BACoB,oBAAoB;uBAC1B,eAAe;wBACd,eAAe;2BACZ,kBAAkB;+BACd,IAAI;;;;;;;;;;;;;;;;;OAiB5B,CAAC;AACR,CAAC;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,mCAA0C,SAAiB,EAAE,IAAI,GAAG,UAAU;IAC5E,OAAO;wBACe,eAAe;2BACZ,kBAAkB;+BACd,IAAI;qBACd,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;;;;;;;;OAQvC,CAAC;AACR,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"recon-browser.d.ts","sourceRoot":"","sources":["../../src/scripts/recon-browser.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"recon-browser.d.ts","sourceRoot":"","sources":["../../src/scripts/recon-browser.ts"],"names":[],"mappings":"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"}