@apifuse/provider-sdk 2.2.0-beta.49 → 2.2.0-beta.50

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/CHANGELOG.md CHANGED
@@ -1,5 +1,9 @@
1
1
  # @apifuse/provider-sdk Changelog
2
2
 
3
+ ## 2.2.0-beta.50
4
+
5
+ - Release candidate for main commit 341c2f0e55a4159cac423fec0bf4f84625191731.
6
+
3
7
  ## 2.2.0-beta.49
4
8
 
5
9
  - Release candidate for main commit 694b145f65c2c81e298c2516dde221ce19cb52da.
@@ -315,17 +315,12 @@ export function createCapsolverResolverVendorAdapter(options) {
315
315
  throw new TypeError(`Capsolver resolver does not support ${challenge.kind}`);
316
316
  }
317
317
  const proxy = identity ? proxyForCapsolver(identity.proxyUrl) : undefined;
318
- if (challenge.kind === "aws_waf" && identity && !proxy) {
319
- throw new ResolverVendorUnavailableError(CAPSOLVER_VENDOR_ID, "transport_failure", {
320
- phase: "create_task",
321
- });
322
- }
323
318
  if (challenge.kind === "cloudflare_interstitial" && !identity) {
324
319
  throw new ResolverVendorUnavailableError(CAPSOLVER_VENDOR_ID, "missing_proxy_identity", {
325
320
  phase: "create_task",
326
321
  });
327
322
  }
328
- if (identity && !proxy) {
323
+ if (challenge.kind !== "aws_waf" && identity && !proxy) {
329
324
  throw new ResolverVendorUnavailableError(CAPSOLVER_VENDOR_ID, "transport_failure", {
330
325
  phase: "create_task",
331
326
  });
@@ -355,9 +350,13 @@ export function createCapsolverResolverVendorAdapter(options) {
355
350
  let phase = "create_task";
356
351
  try {
357
352
  const createTask = async () => {
353
+ // AWS WAF tokens are portable (ADR 0006 lease A→B), so minting can use solver
354
+ // egress independently of the redemption proxy. Passing the caller proxy makes
355
+ // allowlisted allocators such as Smartproxy reject solver workers with
356
+ // "custom proxy connect failed" (production measurement, 2026-09-02).
358
357
  const task = challenge.kind === "aws_waf"
359
358
  ? {
360
- type: proxy ? "AntiAwsWafTask" : "AntiAwsWafTaskProxyLess",
359
+ type: "AntiAwsWafTaskProxyLess",
361
360
  websiteURL: challenge.pageUrl,
362
361
  ...(challenge.siteKey !== undefined ? { awsKey: challenge.siteKey } : {}),
363
362
  ...(challenge.iv !== undefined ? { awsIv: challenge.iv } : {}),
@@ -365,7 +364,7 @@ export function createCapsolverResolverVendorAdapter(options) {
365
364
  ...(challenge.captchaScript !== undefined
366
365
  ? { awsChallengeJS: challenge.captchaScript }
367
366
  : {}),
368
- ...(proxy ? { proxy: proxy.value } : {}),
367
+ ...(identity?.userAgent ? { userAgent: identity.userAgent } : {}),
369
368
  }
370
369
  : challenge.kind === "turnstile"
371
370
  ? {
package/package.json CHANGED
@@ -1,5 +1,5 @@
1
1
  {
2
- "version": "2.2.0-beta.49",
2
+ "version": "2.2.0-beta.50",
3
3
  "name": "@apifuse/provider-sdk",
4
4
  "private": false,
5
5
  "type": "module",
@@ -466,17 +466,12 @@ export function createCapsolverResolverVendorAdapter(
466
466
  throw new TypeError(`Capsolver resolver does not support ${challenge.kind}`);
467
467
  }
468
468
  const proxy = identity ? proxyForCapsolver(identity.proxyUrl) : undefined;
469
- if (challenge.kind === "aws_waf" && identity && !proxy) {
470
- throw new ResolverVendorUnavailableError(CAPSOLVER_VENDOR_ID, "transport_failure", {
471
- phase: "create_task",
472
- });
473
- }
474
469
  if (challenge.kind === "cloudflare_interstitial" && !identity) {
475
470
  throw new ResolverVendorUnavailableError(CAPSOLVER_VENDOR_ID, "missing_proxy_identity", {
476
471
  phase: "create_task",
477
472
  });
478
473
  }
479
- if (identity && !proxy) {
474
+ if (challenge.kind !== "aws_waf" && identity && !proxy) {
480
475
  throw new ResolverVendorUnavailableError(CAPSOLVER_VENDOR_ID, "transport_failure", {
481
476
  phase: "create_task",
482
477
  });
@@ -509,10 +504,14 @@ export function createCapsolverResolverVendorAdapter(
509
504
 
510
505
  try {
511
506
  const createTask = async () => {
507
+ // AWS WAF tokens are portable (ADR 0006 lease A→B), so minting can use solver
508
+ // egress independently of the redemption proxy. Passing the caller proxy makes
509
+ // allowlisted allocators such as Smartproxy reject solver workers with
510
+ // "custom proxy connect failed" (production measurement, 2026-09-02).
512
511
  const task =
513
512
  challenge.kind === "aws_waf"
514
513
  ? {
515
- type: proxy ? "AntiAwsWafTask" : "AntiAwsWafTaskProxyLess",
514
+ type: "AntiAwsWafTaskProxyLess",
516
515
  websiteURL: challenge.pageUrl,
517
516
  ...(challenge.siteKey !== undefined ? { awsKey: challenge.siteKey } : {}),
518
517
  ...(challenge.iv !== undefined ? { awsIv: challenge.iv } : {}),
@@ -520,7 +519,7 @@ export function createCapsolverResolverVendorAdapter(
520
519
  ...(challenge.captchaScript !== undefined
521
520
  ? { awsChallengeJS: challenge.captchaScript }
522
521
  : {}),
523
- ...(proxy ? { proxy: proxy.value } : {}),
522
+ ...(identity?.userAgent ? { userAgent: identity.userAgent } : {}),
524
523
  }
525
524
  : challenge.kind === "turnstile"
526
525
  ? {