@apifuse/provider-sdk 2.2.0-beta.35 → 2.2.0-beta.37
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/AUTHORING.md +22 -8
- package/CHANGELOG.md +8 -0
- package/README.md +20 -8
- package/bin/apifuse-dev.ts +1 -1
- package/bin/apifuse-pack-types.ts +6 -5
- package/bin/apifuse-record.ts +1 -1
- package/bin/apifuse-submit-check.ts +23 -10
- package/dist/ceremonies/index.d.ts +8 -0
- package/dist/ceremonies/index.js +32 -25
- package/dist/cli/templates/provider/Dockerfile.tpl +1 -1
- package/dist/cli/templates/provider/index.ts.tpl +6 -3
- package/dist/cli/templates/provider/operations/ping.ts.tpl +2 -1
- package/dist/define.d.ts +46 -25
- package/dist/define.js +381 -9
- package/dist/index.d.ts +2 -2
- package/dist/provider.d.ts +2 -1
- package/dist/runtime/browser.js +19 -11
- package/dist/runtime/choice.js +24 -7
- package/dist/runtime/resolver-public.d.ts +1 -1
- package/dist/runtime/resolver-public.js +1 -1
- package/dist/runtime/resolver-vendors/browser.js +57 -14
- package/dist/runtime/resolver-vendors/types.d.ts +9 -1
- package/dist/runtime/resolver-vendors/types.js +15 -0
- package/dist/runtime/resolver.d.ts +1 -0
- package/dist/runtime/resolver.js +13 -7
- package/dist/server/serve-implementation.js +25 -0
- package/dist/types.d.ts +25 -17
- package/package.json +6 -1
- package/src/ceremonies/index.ts +45 -31
- package/src/cli/templates/provider/Dockerfile.tpl +1 -1
- package/src/cli/templates/provider/index.ts.tpl +6 -3
- package/src/cli/templates/provider/operations/ping.ts.tpl +2 -1
- package/src/define.ts +462 -59
- package/src/index.ts +5 -2
- package/src/provider.ts +6 -1
- package/src/runtime/browser.ts +34 -11
- package/src/runtime/choice.ts +25 -8
- package/src/runtime/resolver-public.ts +2 -0
- package/src/runtime/resolver-vendors/browser.ts +69 -11
- package/src/runtime/resolver-vendors/types.ts +21 -0
- package/src/runtime/resolver.ts +17 -5
- package/src/server/serve-implementation.ts +39 -1
- package/src/testing/run.ts +3 -3
- package/src/types.ts +41 -17
package/src/types.ts
CHANGED
|
@@ -308,16 +308,16 @@ export interface ProviderSttConfig {
|
|
|
308
308
|
}
|
|
309
309
|
|
|
310
310
|
/**
|
|
311
|
-
*
|
|
312
|
-
* `createBrowserClient`) and is a first-class vendor rather than an escape hatch:
|
|
313
|
-
* for fingerprint-family kinds, it was measured faster than a paid vendor
|
|
314
|
-
* (4.5 s vs 17.5 s) at zero marginal cost.
|
|
311
|
+
* Union order is documentation only.
|
|
315
312
|
*
|
|
316
|
-
*
|
|
317
|
-
*
|
|
313
|
+
* The SDK owns the default hosted-vendor fallback policy and derives the chain
|
|
314
|
+
* from each provider's declared challenge kinds. Hosted solvers are preferred
|
|
315
|
+
* with `capsolver` ahead of `2captcha` in that policy.
|
|
318
316
|
*
|
|
319
|
-
*
|
|
320
|
-
*
|
|
317
|
+
* `browser` is the in-house CDP pool and remains opt-in; it is excluded from the
|
|
318
|
+
* default chain. `custom` is likewise reserved for provider-specific configuration.
|
|
319
|
+
*
|
|
320
|
+
* `ProviderResolverConfig.vendors` overrides the SDK policy when declared.
|
|
321
321
|
*/
|
|
322
322
|
export type ProviderResolverVendor =
|
|
323
323
|
| "browser"
|
|
@@ -411,8 +411,8 @@ export type ChallengeSolution =
|
|
|
411
411
|
};
|
|
412
412
|
|
|
413
413
|
export interface ProviderResolverConfig {
|
|
414
|
-
/**
|
|
415
|
-
readonly vendors
|
|
414
|
+
/** Optional ordered override for the SDK-owned vendor fallback chain. */
|
|
415
|
+
readonly vendors?: readonly ProviderResolverVendor[];
|
|
416
416
|
/** Challenge kinds this provider is permitted to request. */
|
|
417
417
|
readonly kinds: readonly ProviderChallengeKind[];
|
|
418
418
|
/**
|
|
@@ -1636,9 +1636,6 @@ export interface NativeContext {
|
|
|
1636
1636
|
readonly network: NativeNetworkClient;
|
|
1637
1637
|
}
|
|
1638
1638
|
|
|
1639
|
-
/** Consumer-facing alias for the native capability on provider contexts. */
|
|
1640
|
-
export type NativeProviderContext = NativeContext;
|
|
1641
|
-
|
|
1642
1639
|
export interface NativeProviderConfig {
|
|
1643
1640
|
readonly network?: {
|
|
1644
1641
|
readonly tcp?: readonly NativeTcpEgressRule[];
|
|
@@ -1816,6 +1813,10 @@ export interface BrowserPage extends BrowserFrame {
|
|
|
1816
1813
|
cookies(): Promise<readonly BrowserCookie[]>;
|
|
1817
1814
|
fill(selector: string, text: string): Promise<void>;
|
|
1818
1815
|
goto(url: string): Promise<void>;
|
|
1816
|
+
goto(
|
|
1817
|
+
url: string,
|
|
1818
|
+
options?: { readonly timeout?: number; readonly waitUntil?: "load" | "domcontentloaded" },
|
|
1819
|
+
): Promise<void>;
|
|
1819
1820
|
pageId?: string;
|
|
1820
1821
|
screenshot(options?: { fullPage?: boolean }): Promise<Buffer>;
|
|
1821
1822
|
click(selector: string): Promise<void>;
|
|
@@ -2139,7 +2140,7 @@ export interface FlowContext {
|
|
|
2139
2140
|
* un-keyed entries would be shared across all connectionless ceremonies. */
|
|
2140
2141
|
readonly state?: ProviderRuntimeState;
|
|
2141
2142
|
/** Present when the selected runtime supplies native network capabilities. */
|
|
2142
|
-
readonly native?:
|
|
2143
|
+
readonly native?: NativeContext;
|
|
2143
2144
|
stealth: StealthClient;
|
|
2144
2145
|
env: EnvContext;
|
|
2145
2146
|
credential?: CredentialContext;
|
|
@@ -2275,8 +2276,8 @@ export interface ProviderContext {
|
|
|
2275
2276
|
http: HttpClient;
|
|
2276
2277
|
/** Present for requests carrying runtime-resolvable file references. */
|
|
2277
2278
|
readonly files?: ProviderFilesContext;
|
|
2278
|
-
/**
|
|
2279
|
-
readonly native
|
|
2279
|
+
/** Native network capability selected by declaration-derived contexts. */
|
|
2280
|
+
readonly native: NativeContext;
|
|
2280
2281
|
cache: ProviderCache;
|
|
2281
2282
|
state: ProviderRuntimeState;
|
|
2282
2283
|
stealth: StealthClient;
|
|
@@ -2289,6 +2290,28 @@ export interface ProviderContext {
|
|
|
2289
2290
|
choice: ProviderChoiceContext;
|
|
2290
2291
|
}
|
|
2291
2292
|
|
|
2293
|
+
/**
|
|
2294
|
+
* The operation context exposed for one provider declaration. Capability
|
|
2295
|
+
* bindings are present only when their corresponding declaration is present;
|
|
2296
|
+
* trace and request remain ambient runtime bindings.
|
|
2297
|
+
*/
|
|
2298
|
+
export type ProviderContextFor<TConfig> =
|
|
2299
|
+
Pick<ProviderContext, "trace" | "request">
|
|
2300
|
+
& ("env" extends keyof TConfig ? Pick<ProviderContext, "env"> : Record<never, never>)
|
|
2301
|
+
& ("credential" extends keyof TConfig ? Pick<ProviderContext, "credential"> : Record<never, never>)
|
|
2302
|
+
& ("http" extends keyof TConfig ? Pick<ProviderContext, "http"> : Record<never, never>)
|
|
2303
|
+
& ("files" extends keyof TConfig ? Pick<ProviderContext, "files"> : Record<never, never>)
|
|
2304
|
+
& ("native" extends keyof TConfig ? Pick<ProviderContext, "native"> : Record<never, never>)
|
|
2305
|
+
& ("cache" extends keyof TConfig ? Pick<ProviderContext, "cache"> : Record<never, never>)
|
|
2306
|
+
& ("state" extends keyof TConfig ? Pick<ProviderContext, "state"> : Record<never, never>)
|
|
2307
|
+
& ("stealth" extends keyof TConfig ? Pick<ProviderContext, "stealth"> : Record<never, never>)
|
|
2308
|
+
& ("browser" extends keyof TConfig ? Pick<ProviderContext, "browser"> : Record<never, never>)
|
|
2309
|
+
& ("auth" extends keyof TConfig ? Pick<ProviderContext, "auth"> : Record<never, never>)
|
|
2310
|
+
& ("ocr" extends keyof TConfig ? Pick<ProviderContext, "ocr"> : Record<never, never>)
|
|
2311
|
+
& ("stt" extends keyof TConfig ? Pick<ProviderContext, "stt"> : Record<never, never>)
|
|
2312
|
+
& ("resolver" extends keyof TConfig ? Pick<ProviderContext, "resolver"> : Record<never, never>)
|
|
2313
|
+
& ("choice" extends keyof TConfig ? Pick<ProviderContext, "choice"> : Record<never, never>);
|
|
2314
|
+
|
|
2292
2315
|
export interface ProxiedOAuthConfig {
|
|
2293
2316
|
authorizeUrl: string;
|
|
2294
2317
|
tokenUrl: string;
|
|
@@ -2345,6 +2368,7 @@ export interface OperationContractMetadata {
|
|
|
2345
2368
|
export interface OperationDefinition<
|
|
2346
2369
|
TInput extends SchemaLike = SchemaLike,
|
|
2347
2370
|
TOutput extends SchemaLike = SchemaLike,
|
|
2371
|
+
TContext = ProviderContext,
|
|
2348
2372
|
> {
|
|
2349
2373
|
/**
|
|
2350
2374
|
* Short English display title for the operation. The SDK passes it through
|
|
@@ -2376,7 +2400,7 @@ export interface OperationDefinition<
|
|
|
2376
2400
|
input: TInput;
|
|
2377
2401
|
output: TOutput;
|
|
2378
2402
|
handler(
|
|
2379
|
-
ctx:
|
|
2403
|
+
ctx: TContext,
|
|
2380
2404
|
input: InferSchemaOutput<TInput>,
|
|
2381
2405
|
):
|
|
2382
2406
|
| OperationHandlerResult<InferSchemaOutput<TOutput>>
|